从C#中的特定级别反序列化

时间:2016-02-28 10:44:45

标签: c# json

我从Steam检索有关特定游戏的信息。我提供了一个应用网址:http://store.steampowered.com/app/ 57690 /并获得JSON响应,如:

{
   "57690":{   // this is dynamically got from application id above ^
      "success":true
      "data": { }
   }
}

我有一个对象SteamData

public bool success { get; set; }

public InternalData data { get; set; }

InternalData

public string name { get; set; }

public string about_the_game { get; set; }

public string supported_languages { get; set; }
...

我尝试使用以下命令将上面的json反序列化为SteamData:

SteamData data = JsonConvert.DeserializeObject<SteamData>( thatJsonAbove );

它不起作用,因为存在一个应用程序ID 的根...

如何仅反序列化root内部(在此示例中,“57690”内部是什么)?

1 个答案:

答案 0 :(得分:1)

如果使用Newtonsoft JSON库,您可以尝试这样做:

JObject gameInfo = JObject.Parse(json);
SteamData data= gameInfo.SelectToken("57690", false).ToObject<SteamData>();

由于您了解游戏的ID,因此您可以轻松使用此方法。