使用JObject,JToken和JArray进行JSON.NET解析

时间:2014-03-07 14:22:17

标签: json parsing json.net

我有一个json字符串,我正在尝试用JSON.net解析,我想循环并使用komponent数组中的名称。这是我的json字符串:

{"Name": "Service","jsonTEMPLATE": "{"komponent": [{"name": "aa"}, {"name": "bb"}]}"}

这是我使用JSON.net的代码

    JObject o = JObject.Parse(serviceData);
    JToken j = (JToken)o.SelectToken("jsonTEMPLATE");
    JArray a = (JArray)j.SelectToken("komponent");

    foreach (JObject obj in a)
    {
        //Do something
    }

我从null

获得(JArray)j.SelectToken("komponent");

我做错了什么?

1 个答案:

答案 0 :(得分:8)

您的JSON无效。您可以通过JSONLint.com运行它来检查它。您在jsonTEMPLATE属性的值附近有引号,如果要将其解释为对象,则该值不应该存在:

{
    "Name": "Service",
    "jsonTEMPLATE": "{"komponent": [{"name": "aa"}, {"name": "bb"}]}"
}

JSON需要看起来像这样才能使代码成功:

{
    "Name": "Service",
    "jsonTEMPLATE": {"komponent": [{"name": "aa"}, {"name": "bb"}]}
}