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

4

我有一个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
    }

我从(JArray)j.SelectToken("komponent");中得到了null,我做错了什么吗?

1个回答

8

您的JSON格式无效。您可以通过JSONLint.com来检查它。您在jsonTEMPLATE属性值周围加上了引号,如果要被解释为对象,则不应该有这些引号:

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

为了使你的代码能够成功,JSON应该是这样的:
{
    "Name": "Service",
    "jsonTEMPLATE": {"komponent": [{"name": "aa"}, {"name": "bb"}]}
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接