如何获取JSON令牌的值

时间:2018-01-03 09:11:15

标签: c# json json.net

"message":{
    "type":"text",
    "text":"a message to the service",
    "media":"http://example.com",
    "location":{
        "lat":50.76891,
        "lon":6.11499
    },
    "tracking_data":"tracking data"
}

如何获得Json,lat和lon的children元素的值?

JToken message = data.SelectToken("message");
 var lat = message.Value<double>("lat");

这显示0,而不是实际值。

1 个答案:

答案 0 :(得分:3)

此问题的快速解决方案是以下代码。

重要的一点是,你必须尊重你的JSON输入的hirachical结构。 lat不是直接在message中,而是在location对象中。

var data = JObject.Parse(@"{
        ""message"": {
            ""type"":""text"",
            ""text"":""a message to the service"",
            ""media"":""http://example.com"",
            ""location"": {
                ""lat"":50.76891,
                ""lon"":6.11499
            },
            ""tracking_data"":""tracking data""
        }
    }");

var location = data.SelectToken("message.location");
var lat = location.Value<double>("lat");