我正在尝试从 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,上面的代码运行良好。