在 Json 中获取令牌

Get Token in Json

我有一个问题 JSON 在 JArray 中获得第二层:

{
  "Level1": {
    "Level2": [{
      "id": "Chart",
      "Box": [{
        "id": "1",
        "value": "10"
       },{
        "id": "2",
        "value": "20"
       }]
    }]
  }
}

而且我想通过这种方式完全获得像Array这样的2级:

JArray contasdasd = _jsonMaster["Level1"]["Level2"] as JArray;

我得到:

{
  "id": "Chart",
  "Box": [{
    "id": "1",
    "value": "10"
  },{
    "id": "2",
    "value": "20"
  }]
}

我想要:

"Level2": [{
  "id": "Chart",
  "Box": [{
    "id": "1",
    "value": "10"
  },{
    "id": "2",
    "value": "20"
  }]
}]

有什么方法可以达到 2 级吗?

当然是你

var level1 = _jsonMaster["Level1"];

问题是你的水平太高了。

您感兴趣的对象 "Level2": [...] 本身不是 JArray,而是 JProperty。您可以通过搜索 Level1 的属性来获取它,但请记住,您现在将拥有 JProperty 而不是 JArray。该结果的 Value 将是您在当前代码中获得的 JArray

    JProperty contasdasd = _jsonMaster["Level1"].First(o => (o as JProperty).Name == "Level2") as JProperty;

    Console.WriteLine(contasdasd.ToString()); // Will be what you are looking for
    Console.WriteLine(contasdasd.GetType()); // Will return JProperty
    Console.WriteLine(contasdasd.Value.GetType()); // Will return JArray