C# 解析 JSON 字符串

标签 c# json

我尝试了无数方法来解析我的 JSON 字符串(Steam 公共(public)数据),但似乎没有任何效果。我只想能够从字符串中提取值。例如,获取将返回 SlothGodpersonaname 的值。我的项目中安装了 JSON.NET。

这是我的 JSON:

{
    "response": {
        "players": [
            {
                "steamid": "76561198301407459",
                "communityvisibilitystate": 3,
                "profilestate": 1,
                "personaname": "SlothGod",
                "lastlogoff": 1508389707,
                "commentpermission": 1,
                "profileurl": "http://steamcommunity.com/id/sleuthgud/",
                "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/09/09cea52b91136fb3306c57771a746db2823b91ba.jpg",
                "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/09/09cea52b91136fb3306c57771a746db2823b91ba_medium.jpg",
                "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/09/09cea52b91136fb3306c57771a746db2823b91ba_full.jpg",
                "personastate": 0,
                "realname": "Josh",
                "primaryclanid": "103582791460168790",
                "timecreated": 1462086929,
                "personastateflags": 0,
                "loccountrycode": "AU",
                "locstatecode": "QLD"
            }
        ]

    }
}

向我建议的主要方法:

public class Details
{
    public string personaname { get; set; }
}
private void GetSteamDetails()
{
    var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Details>(SteamDetailsJson);
    SteamName = data.personaname;
}

这是放在 Page_Load() 之前。然后我调用 GetSteamDetails();当我想获取名称时。

最佳答案

在我的问题被否决后,我决定不放弃这个问题。经过广泛的研究、反复试验和 YouTube 教程,这是最有帮助的 IMO。我发现数据包含一个 JSON 数组,是的,我承认,我对此感到困惑,但答案是简单地将其视为 C# 数组,并将 [1] 添加到播放器的末尾。

Details details = new Details();
public class Details
{
    public string avatar { get; set; }
    public string avatarmedium { get; set; }
    public string avatarfull { get; set; }
    public string realname { get; set; }
    public string personaname { get; set; }
    public string steamid { get; set; }
}

private void GetSteamDetails()
{
    var SteamDetails= JsonConvert.DeserializeObject<dynamic>(SteamDetailsJson);
    avatar = SteamDetails.response.players[1].avatar.ToString();
    personaname = SteamDetails.response.players[1].personaname.ToString();
}

关于C# 解析 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823946/

相关文章:

php - 带有 JSON、PHP 的 iOS

c# - 如何在Visual Studio Wp8.1中查找应用程序的包名称?

c# 如何记录意外的程序退出

c# - 更细粒度的 SQL 异常?

javascript - 分组数组内的编号

c# - 为什么我必须在使用之前将 JValue 显式转换为目标类型?

javascript - 如何从 JSON 数据创建 Highcharts 系列以供使用

c# - 如何在 HttpClient/MultipartFormDataContent 中禁用 base64 编码的文件名

c# - 将存储过程中使用的逻辑传达给调用 C# 应用程序

javascript - 使用 javascript 遍历 json - 查找具有特定父值的子项