从 C# 中的特定级别反序列化
本文关键字:反序列化 | 更新日期: 2023-09-27 18:36:31
我从 Steam 检索有关特定游戏的信息。我提供了一个应用程序 url: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......
如何仅反序列化根目录中的内容(在本例中,"57690"中的内容)?
如果使用Newtonsoft JSON库,您可以尝试以下操作:
JObject gameInfo = JObject.Parse(json);
SteamData data= gameInfo.SelectToken("57690", false).ToObject<SteamData>();
由于您知道游戏的 ID - 因此可以轻松使用此方法。