首页 > 解决方案 > 如何从 url 获取反序列化的 json

问题描述

我有 URL https://new.scoresaber.com/api/player/76561198380176668/basic(对不起,它没有格式化,我无法控制它),我希望最终能够做一些事情,比如Console.WriteLine(UserData.rank)

我有我在这里尝试过的代码https://hastebin.com/ogasayereh.cs

标签: c#json.net

解决方案


的值为json_data

{"playerInfo":{"playerid":"76561198380176668","pp":1612.87,"banned":0,"inactive":0,"name":"sharks and shibe","country":"US","role":"","badges":"","history":"51537,51650,46246,46322,46417,46533,46591,41812,41843,41847,40630,38528,30637,15157,15091,15095,15103,15112,15117,15124,15129,15145,15144,15181,14968,11711,9905,9921,9959,7342,6974,6992,7003,7026,6887,6665,6684,6694,6721,6729,6736,6747,6763,6777,6785,6802,6799,7313,7352","avatar":"/api/static/avatars/76561198380176668.jpg","rank":7342,"countryRank":2861}}

1 - 然后,您需要添加第二类,例如Root

public class RootObject
{
    public UserData playerInfo { get; set; }
}

public class UserData
{
    public string playerid { get; set; }
    public string pp { get; set; }
    public bool banned { get; set; }
    public bool inactive { get; set; }
    public string name { get; set; }
    public string country { get; set; }
    public string role { get; set; }
    public string badges { get; set; }
    public string history { get; set; }
    public string avatar { get; set; }
    public string rank { get; set; }
    public string countryRank { get; set; }
}

2 - 调用函数:

var data = _download_serialized_json_data<RootObject>("https://new.scoresaber.com/api/player/76561198380176668/basic");
string pp = data.playerInfo.pp;
Console.WriteLine(pp);

我希望这会帮助你。


推荐阅读