获得孩子的价值

时间:2014-06-19 10:24:52

标签: c# json.net

我的简单json数据如下

   string _JsonData = @" {
       "tm":{
          "1":{
             "pl":{
                "11":{
                   "foo":"2"
                },
                "902":{
                   "foo":"70"
                }
             }
          }
       }";

我可以获得 pl 孩子的foo值(例如 2 70 ),如下代码

JObject _JObject = JObject.Parse(_JsonData);

foreach (JToken _JTokenCurrent in _JObject["tm"]["1"]["pl"].Children())
{
    MessageBox.Show(_JTokenCurrent["foo"].ToString());
} 

那么我怎样才能获得 pl 孩子的属性值(例如 11 902 )的价值?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

好的,我已经解决了如下;

JObject _JObject = JObject.Parse(_JsonData);

foreach (JToken _JTokenCurrent in _JObject["tm"]["1"]["pl"].Children())
{
    // get values such as 11 and 902
    JProperty _JTokenCurrentName = (JProperty)_JTokenCurrent;
    MessageBox.Show(_JTokenCurrentName.Name);

    /// get values such as 2 and 70
    MessageBox.Show(_JTokenCurrent["foo"].ToString());
}

答案 1 :(得分:0)

未经测试!

JObject _JObject = JObject.Parse(_JsonData);

foreach (JToken _JTokenCurrent in _JObject["tm"]["1"]["pl"].Children())
{
    // Should be your 11 and 902
    MessageBox.Show(_JTokenCurrent.Children().ToString());

    // Should be your 2 nad 70
    MessageBox.Show(_JTokenCurrent["foo"].ToString());
}