Deserializing complex object using Json.NET

Viewed 19859

I need to deserialize the this json returned from grogle maps api:

{
    "destination_addresses": [
        "Via Medaglie D'Oro, 10, 47121 Forlì FC, Italia",
        "Via Torino, 20123 Milano, Italia",
        "Via Guglielmo Marconi, 71, 40121 Bologna, Italia",
        "Via Irnerio, 40126 Bologna, Italia"
    ],
    "origin_addresses": [
        "Via Medaglie D'Oro, 10, 47121 Forlì FC, Italia",
        "Via Torino, 20123 Milano, Italia",
        "Via Guglielmo Marconi, 71, 40121 Bologna, Italia",
        "Via Irnerio, 40126 Bologna, Italia"
    ],
    "rows": [
        {
            "elements": [
                {
                    "distance": {
                        "text": "1 m",
                        "value": 0
                    },
                    "duration": {
                        "text": "1 min",
                        "value": 0
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "286 km",
                        "value": 286281
                    },
                    "duration": {
                        "text": "2 ore 48 min",
                        "value": 10083
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "80,1 km",
                        "value": 80088
                    },
                    "duration": {
                        "text": "1 ora 3 min",
                        "value": 3789
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "77,6 km",
                        "value": 77594
                    },
                    "duration": {
                        "text": "57 min",
                        "value": 3422
                    },
                    "status": "OK"
                }
            ]
        },
        {
            "elements": [
                {
                    "distance": {
                        "text": "288 km",
                        "value": 287811
                    },
                    "duration": {
                        "text": "2 ore 48 min",
                        "value": 10052
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "1 m",
                        "value": 0
                    },
                    "duration": {
                        "text": "1 min",
                        "value": 0
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "212 km",
                        "value": 212423
                    },
                    "duration": {
                        "text": "2 ore 8 min",
                        "value": 7664
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "218 km",
                        "value": 218219
                    },
                    "duration": {
                        "text": "2 ore 9 min",
                        "value": 7740
                    },
                    "status": "OK"
                }
            ]
        },
        {
            "elements": [
                {
                    "distance": {
                        "text": "78,5 km",
                        "value": 78528
                    },
                    "duration": {
                        "text": "56 min",
                        "value": 3346
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "212 km",
                        "value": 212190
                    },
                    "duration": {
                        "text": "2 ore 5 min",
                        "value": 7519
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "1 m",
                        "value": 0
                    },
                    "duration": {
                        "text": "1 min",
                        "value": 0
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "2,0 km",
                        "value": 1979
                    },
                    "duration": {
                        "text": "5 min",
                        "value": 316
                    },
                    "status": "OK"
                }
            ]
        },
        {
            "elements": [
                {
                    "distance": {
                        "text": "74,7 km",
                        "value": 74719
                    },
                    "duration": {
                        "text": "55 min",
                        "value": 3278
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "218 km",
                        "value": 217951
                    },
                    "duration": {
                        "text": "2 ore 9 min",
                        "value": 7712
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "3,8 km",
                        "value": 3782
                    },
                    "duration": {
                        "text": "11 min",
                        "value": 671
                    },
                    "status": "OK"
                },
                {
                    "distance": {
                        "text": "1 m",
                        "value": 0
                    },
                    "duration": {
                        "text": "1 min",
                        "value": 0
                    },
                    "status": "OK"
                }
            ]
        }
    ],
    "status": "OK"
}

I need to create a Distance Matrix so I'm only interested in the "value" field inside "distance".

I've tried this approach:

DataSet data = JsonConvert.DeserializeObject<DataSet>(jsonResponse);
        DataTable dataTab = data.Tables["Elements"];
        foreach (DataRow elements in dataTab.Rows)
        {
            Console.WriteLine(elements["distance"]);
            //Do something else here
        }

But The JSonConvert returns "Additional text found in JSON string after finishing deserializing object."

3 Answers
Related