使用 JObject 从 JSON 中检索数据



我正在尝试从 JSON 中获取游戏的值,但是有多个同名字段,所以我想知道是否有一种方法可以检索该单个值,这是基本的 JSON 结构:

"response": {
    "game_count": 119,
    "games": [
        {
            "appid": 3920,
            "playtime_forever": 0
        },
        {
            "appid": 4000,
            "playtime_forever": 278
        },

我需要通过使用 appID 然后检索playtime_forever键以某种方式获取属性。

您可以将 JSON 转换为类,然后查询:

class ResponseJSON
{
    [JsonProperty("response")]
    public Result Response { get; set; }
}
class Result
{
    [JsonProperty("game_count")]
    public string Count { get; set; }
    [JsonProperty("games")]
    public List<Game> Gmaes { get; set; }    
}
class Game 
{
    [JsonProperty("appid")]
    public string Id { get; set; }
    [JsonProperty("playtime_forever")]
    public string PlayTime { get; set; }
}
var resp = JsonConvert.DeserializeObject<ResponseJSON>(jsonstr);

然后,您可以使用 for 循环遍历对象:

foreach(game in resp.Respone.Games) {
   var playtime = game.PlayTime;
  // do stuff here
}

或者,您可以使用 linq 查询您的游戏:

var selectiveGames = resp.Response.Games.Where(x=> x.PlayTime == 220).ToList();
如果没有牛顿软件

dll,您需要从这里将牛顿软件 dll 添加到您的项目中;

更新:使用原始JSON,上面的代码运行良好。

相关内容

  • 没有找到相关文章

最新更新