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

Lor*_*ion 4 parsing json json.net

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

{"Name": "Service","jsonTEMPLATE": "{"komponent": [{"name": "aa"}, {"name": "bb"}]}"}
Run Code Online (Sandbox Code Playgroud)

这是我使用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
    }
Run Code Online (Sandbox Code Playgroud)

null来自(JArray)j.SelectToken("komponent");

我究竟做错了什么?

Bri*_*ers 8

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

{
    "Name": "Service",
    "jsonTEMPLATE": "{"komponent": [{"name": "aa"}, {"name": "bb"}]}"
}
Run Code Online (Sandbox Code Playgroud)

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

{
    "Name": "Service",
    "jsonTEMPLATE": {"komponent": [{"name": "aa"}, {"name": "bb"}]}
}
Run Code Online (Sandbox Code Playgroud)