Newtonsoft.Json Использование в длинных деревьях - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь почерпнуть некоторую информацию из ответа JSON, но она не удалась;Я думаю, что это может быть связано с тем, как я использую библиотеку, для которой я новичок.

Ниже приведен экземпляр JSON, из которого я пытаюсь получить данные;

{
   "profileChanges":[
      {
         "changeType":"fullProfileUpdate",
         "profile":{
            "stats":{
               "attributes":{
                  "allowed_to_receive_gifts":true,
                  "allowed_to_send_gifts":true,
                  "ban_history":{},
                  //This is what I'm trying to scrape the EpicPCKorea string
                  "current_mtx_platform":"EpicPCKorea",
                  "daily_purchases":{},
                  "gift_history":{},
                  "import_friends_claimed":{},
                  "in_app_purchases":{
                     "fulfillmentCounts":{
                        "2E5AC9924F2247325BBB22AC9AF9965B":1
                     },
                     "receipts":[
                        "EPIC:543a35e70dde4e0aaf56a9e0b76c8f67"
                     ]
                  },
                  "inventory_limit_bonus":0,
                  "mfa_enabled":false,
                  "monthly_purchases":{},
                  "mtx_affiliate":"",
                  "mtx_purchase_history":{},
                  "weekly_purchases":{}
               }
            },
            "updated":"2018-12-06T14:37:27.797Z",
         }
      }
   ],
   "profileChangesBaseRevision":31,
   "serverTime":"2018-12-30T18:44:35.451Z"
}

Здесь мой код на C #;

//str4 is the json response that I just posted up.
dynamic json    = JsonConvert.DeserializeObject(str4); 
string platform = json.profileChanges.profile.stats.attributes.current_mtx_platform;

Но он совсем не работает.

Я отладил его и обнаружил это исключение:

'Newtonsoft.Json.Linq.JArray' does not contain a definition for 'profile'

Что я делаю не так и как я могу это исправить?

1 Ответ

0 голосов
/ 31 декабря 2018

Как упоминалось в комментариях к вашему вопросу, profileChanges - это массив, поэтому вам нужно указать, к какому элементу массива обращаться.

Вы уверены, что ниже не работает?У меня это работает ...

string platform = json.profileChanges[0].profile.stats.attributes.current_mtx_platform;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...