C#解析JSON字符串 [英] C# Parsing JSON String

查看:468
本文介绍了C#解析JSON字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have tried countless methods to Parse my JSON string (Steam Public Data), yet nothing seems to work. I just want to be able to extract values from the string. For Example, obtaining the value of personaname which would return SlothGod. I have JSON.NET installed in my project.

这是我的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();当我想获取名称时.

This is placed before Page_Load(). I then call GetSteamDetails(); when I want to fetch the name.

推荐答案

在我的问题被否决后,我决定不放弃这个问题.经过大量研究,反复试验和YouTube教程,这对IMO最为有用.我发现数据包含一个JSON数组,是的,我承认,对此我感到困惑,但是答案是将其像C#数组一样对待,并在播放器的末尾添加[1].

After my question being down voted, I decided to not give up on this problem. After extensive research, trial and error, and YouTube tutorials which are the most helpful IMO. I found that the data was containing a JSON array, and yes I will admit, I was confused with this, but the answer was to simply treat it like a C# array and add [1] to the end of players.

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字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆