-1

I have a json string that I want to deserialize into C# class but I am unable to recognise the json string pattern to have a generalized C# class.

Please help me with that.

Following is the json string that I am having:

{
    "352093081738410": {
        "devicetime": "2019-11-01 15:29:04",
        "servertime": "2019-11-01 15:30:07.591",
        "lat": "17.6911083",
        "lng": "78.4817233",
        "altitude": "615",
        "angle": "289",
        "speed": "0"
    },
    "352093083062439": {
        "devicetime": "2019-10-25 18:16:36",
        "servertime": "2019-10-25 18:17:30.812",
        "lat": "12.8927433",
        "lng": "79.9191316",
        "altitude": "61",
        "angle": "219",
        "speed": "0"
    },
    "352093087620638": {
        "devicetime": "2019-11-01 15:36:56",
        "servertime": "2019-11-01 15:37:55.411",
        "lat": "17.620275",
        "lng": "78.3911383",
        "altitude": "616",
        "angle": "232",
        "speed": "0"
    }
}

Any help on this would be much appreciation.

DeepakVerma
  • 99
  • 10

3 Answers3

1

This data looks like a dictionary (i.e. not an array).

Here's a quick solution with http://json2csharp.com/ magic.

public class SomeClass
{
    public string devicetime { get; set; }
    public string servertime { get; set; }
    public string lat { get; set; }
    public string lng { get; set; }
    public string altitude { get; set; }
    public string angle { get; set; }
    public string speed { get; set; }
}


public static void Main(string[] args)
{
    var json = @"{""352093081738410"":{""devicetime"":""2019-11-01 15:29:04"",""servertime"":""2019-11-01 15:30:07.591"",""lat"":""17.6911083"",""lng"":""78.4817233"",""altitude"":""615"",""angle"":""289"",""speed"":""0""},""352093083062439"":{""devicetime"":""2019-10-25 18:16:36"",""servertime"":""2019-10-25 18:17:30.812"",""lat"":""12.8927433"",""lng"":""79.9191316"",""altitude"":""61"",""angle"":""219"",""speed"":""0""},""352093087620638"":{""devicetime"":""2019-11-01 15:36:56"",""servertime"":""2019-11-01 15:37:55.411"",""lat"":""17.620275"",""lng"":""78.3911383"",""altitude"":""616"",""angle"":""232"",""speed"":""0""},""352093087650890"":{""devicetime"":""2019-11-01 15:36:53"",""servertime"":""2019-11-01 15:37:54.892"",""lat"":""21.1404366"",""lng"":""78.9977"",""altitude"":""340"",""angle"":""137"",""speed"":""0""},""358480080188370"":{""devicetime"":""2019-11-01 15:36:41"",""servertime"":""2019-11-01 15:37:42.499"",""lat"":""17.4476866"",""lng"":""74.09244"",""altitude"":""583"",""angle"":""319"",""speed"":""0""},""358480080708102"":{""devicetime"":""2019-11-01 15:36:31"",""servertime"":""2019-11-01 15:37:31.893"",""lat"":""12.8550583"",""lng"":""79.9508066"",""altitude"":""41"",""angle"":""114"",""speed"":""0""},""358480081979983"":{""devicetime"":""2019-10-24 19:01:48"",""servertime"":""2019-10-24 19:02:54.799"",""lat"":""18.3867366"",""lng"":""73.8565349"",""altitude"":""826"",""angle"":""109"",""speed"":""0""},""358480081994693"":{""devicetime"":""2019-10-22 20:07:46"",""servertime"":""2019-10-22 20:08:37.402"",""lat"":""12.8551783"",""lng"":""79.9510483"",""altitude"":""60"",""angle"":""145"",""speed"":""0""},""358480082430515"":{""devicetime"":""2019-11-01 15:36:46"",""servertime"":""2019-11-01 15:37:54.496"",""lat"":""18.8860683"",""lng"":""73.0503266"",""altitude"":""76"",""angle"":""31"",""speed"":""0""},""358480082479553"":{""devicetime"":""2019-11-01 15:36:43"",""servertime"":""2019-11-01 15:37:52.053"",""lat"":""17.2999516"",""lng"":""74.1655083"",""altitude"":""556"",""angle"":""150"",""speed"":""54""},""358480082528904"":{""devicetime"":""2019-10-17 01:57:45"",""servertime"":""2019-10-17 01:58:34.575"",""lat"":""18.73084"",""lng"":""76.7564816"",""altitude"":""507"",""angle"":""333"",""speed"":""0""},""358480082659048"":{""devicetime"":""2019-11-01 15:36:33"",""servertime"":""2019-11-01 15:37:55.255"",""lat"":""18.8859716"",""lng"":""73.0479599"",""altitude"":""25"",""angle"":""224"",""speed"":""0""},""358480082672686"":{""devicetime"":""2019-11-01 15:35:37"",""servertime"":""2019-11-01 15:36:47.076"",""lat"":""17.7372333"",""lng"":""78.474835"",""altitude"":""580"",""angle"":""353"",""speed"":""0""},""358480082956360"":{""devicetime"":""2019-10-24 21:18:52"",""servertime"":""2019-10-24 21:19:59.434"",""lat"":""21.1408883"",""lng"":""78.9975033"",""altitude"":""341"",""angle"":""286"",""speed"":""0""},""358480086439991"":{""devicetime"":""2019-11-01 15:29:55"",""servertime"":""2019-11-01 15:31:13.746"",""lat"":""17.8315"",""lng"":""76.7121216"",""altitude"":""615"",""angle"":""206"",""speed"":""0""},""358480087036135"":{""devicetime"":""2019-11-01 15:36:44"",""servertime"":""2019-11-01 15:37:49.907"",""lat"":""12.8556033"",""lng"":""79.9518366"",""altitude"":""57"",""angle"":""53"",""speed"":""0""},""358480088130168"":{""devicetime"":""2019-11-01 15:36:32"",""servertime"":""2019-11-01 15:37:40.957"",""lat"":""12.889275"",""lng"":""79.9395716"",""altitude"":""47"",""angle"":""69"",""speed"":""0""},""358480088143294"":{""devicetime"":""2019-11-01 15:36:27"",""servertime"":""2019-11-01 15:37:33.635"",""lat"":""12.542705"",""lng"":""78.2022016"",""altitude"":""509"",""angle"":""169"",""speed"":""0""},""358480088143831"":{""devicetime"":""2019-11-01 15:36:27"",""servertime"":""2019-11-01 15:37:36.113"",""lat"":""12.6887783"",""lng"":""77.8569266"",""altitude"":""861"",""angle"":""41"",""speed"":""0""},""358480088487105"":{""devicetime"":""2019-11-01 15:36:28"",""servertime"":""2019-11-01 15:37:37.174"",""lat"":""12.5424099"",""lng"":""78.202355"",""altitude"":""514"",""angle"":""97"",""speed"":""0""},""358480088487154"":{""devicetime"":""2019-11-01 15:36:45"",""servertime"":""2019-11-01 15:37:53.745"",""lat"":""12.6889733"",""lng"":""77.8568616"",""altitude"":""867"",""angle"":""274"",""speed"":""0""},""358480088487246"":{""devicetime"":""2019-11-01 15:36:39"",""servertime"":""2019-11-01 15:37:51.443"",""lat"":""18.8734183"",""lng"":""73.1039016"",""altitude"":""29"",""angle"":""290"",""speed"":""0""},""358480088497849"":{""devicetime"":""2019-10-25 19:28:18"",""servertime"":""2019-10-25 19:30:21.275"",""lat"":""12.8927516"",""lng"":""79.91897"",""altitude"":""55"",""angle"":""181"",""speed"":""0""},""358480088750411"":{""devicetime"":""2019-11-01 15:35:55"",""servertime"":""2019-11-01 15:37:05.918"",""lat"":""18.8855749"",""lng"":""73.0473116"",""altitude"":""29"",""angle"":""79"",""speed"":""0""},""358480088780152"":{""devicetime"":""2019-11-01 15:36:39"",""servertime"":""2019-11-01 15:37:47.119"",""lat"":""17.8987683"",""lng"":""75.446035"",""altitude"":""1037"",""angle"":""0"",""speed"":""0""},""358480088780269"":{""devicetime"":""2019-11-01 15:36:52"",""servertime"":""2019-11-01 15:37:54.918"",""lat"":""17.6911716"",""lng"":""78.4816483"",""altitude"":""617"",""angle"":""303"",""speed"":""0""},""358480088783172"":{""devicetime"":""2019-11-01 15:36:47"",""servertime"":""2019-11-01 15:37:46.517"",""lat"":""12.6890833"",""lng"":""77.8569233"",""altitude"":""868"",""angle"":""56"",""speed"":""0""},""358480088827250"":{""devicetime"":""2019-11-01 15:36:37"",""servertime"":""2019-11-01 15:37:44.894"",""lat"":""18.8730533"",""lng"":""73.1038883"",""altitude"":""10"",""angle"":""0"",""speed"":""0""},""358480088877974"":{""devicetime"":""2019-11-01 15:36:51"",""servertime"":""2019-11-01 15:37:58.751"",""lat"":""13.149515"",""lng"":""77.3208816"",""altitude"":""909"",""angle"":""5"",""speed"":""0""}}";

    // .NET Core only
    var d = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, SomeClass>>(json);

    // Json.NET from https://www.newtonsoft.com/json
    var d2 = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, SomeClass>>(json);
}

Strings EVERYWHERE

Please note that all fields are strings because all value are in quotes.

"358480088780152": {
        "devicetime": "2019-11-01 15:36:39",
        "servertime": "2019-11-01 15:37:47.119",
        "lat": "17.8987683",
        "lng": "75.446035",
        "altitude": "1037",
        "angle": "0",
        "speed": "0"
    },

vs.

"358480088780152": {
        "devicetime": "2019-11-01 15:36:39",
        "servertime": "2019-11-01 15:37:47.119",
        "lat": 17.8987683,
        "lng": 75.446035,
        "altitude": 1037,
        "angle": 0,
        "speed": 0
    },
tymtam
  • 31,798
  • 8
  • 86
  • 126
  • You could probably define both time fields as DateTime and it should work. – ckuri Nov 01 '19 at 10:50
  • @tymtam ... but one thing I want to ask that I did use jsontosharp.com prior to posting this question here but it made several classes there... so how did you get this solution from the same website ? – DeepakVerma Nov 01 '19 at 11:35
0

you should be deserializing this pattern into a similar object:

public class JSObject(){
  datetime DeviceTime {get;set;}
  datetime ServerTime {get;set;}
  decimal lat {get;set;}
  decimal lng {get;set;}
  int altitude {get;set;}
  int angle {get;set;}
  int speed {get;set;}
}

and you should deserialize your schema into a list of JSObject.

-1

The problem is class in C# can not be started by numbers