получение ценности от детей

#c# #json.net

#c# #json.net

Вопрос:

Мои простые данные json, как показано ниже

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

Я могу получить значение значений foo для pl дочерних элементов (например, 2 и 70), как показано ниже. код

 JObject _JObject = JObject.Parse(_JsonData);

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

Итак, как я могу получить значение значений свойств pl дочерних элементов (например, 11 и 902)?

Заранее благодарю вас.

Комментарии:

1. Почему бы не позвонить _JTokenCurrent.Children() ?

2. json похоже, отсутствует одна скобка. И вы дважды задавали один и тот же вопрос.

3. Если бы это не был вопрос программирования, ответ на ваш заголовок был бы бесценным 🙂

4. @HassanNisar да, я спрашивал раньше, но удалил это. Это была моя вина.

5. @Pankaj извините, мой английский не очень хорош.

Ответ №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. что такое _JBoxScoreValue ?

2. @HassanNisar ХОРОШО, я это исправил 🙂 Спасибо.

Ответ №2:

Не тестировалось!

 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());
}