首页 > 解决方案 > How can I parse very nested json by newton in C#?

问题描述

How can I access second item in execution-results: " "value": 1," I can not do that.How can I get second value?

  JObject jo = JObject.Parse(Resource1.samplejson);
        var valueQuery = jo.SelectTokens("results[*].value").Any();

{{
  "type": "SUCCESS",
  "msg": "Container test successfully called.",
  "result": {
    "execution-results": {
      "results": [
        {
          "value": {
            "com.myteam.test.Pricing": {
              "a": 0.196100271932827,
               "b": 7,
               "c": 0.012,

            }
          },
          "key": "mymodel"
        },
        {
          "value": 1,
          "key": ""
        }
      ],
      "facts": [
        {
          "value": {
            "org.test.core.common.DefaultFactHandle": {
              "external-form": "0:598:701211836:701211836:1164:DEFAULT:NON_TRAIT:com.myteam.x.mymodel"
            }
          },
          "key": "mymodel"
        }
      ]
    }
  }
}}

标签: c#.netjson.netdeserialization

解决方案


如果内部属性中存在数据并使用 $,您应该对内部对象尝试此操作,您将得到 true。对于内部和 $.. 对于内部的内部等等....

var valueQuery = jo.SelectTokens("$..results[*].value").Any();
if(valueQuery){
//Write your logic to retrieve data from object 
}

并从数据中检索值


推荐阅读