簡體   English   中英

用Json.NET解析C#json

[英]C# json parsing with Json.NET

我正在使用Web API制作Steam的朋友列表管理工具。 該API返回以下JSON:

{
"friendslist": {
    "friends": [
        {
            "steamid": "12345678",
            "relationship": "friend",
            "friend_since": 1290444866
        },
        {
            "steamid": "87654321",
            "relationship": "friend",
            "friend_since": 1421674782
        },
        {
            "steamid": "5287931",
            "relationship": "friend",
            "friend_since": 1418428351
        }
    ]
}

我嘗試用以下代碼解析它:

public class Friendslist
{
    public IDictionary<int, IDictionary<int, Friend>> friends { get; set; }
}

public class Friend
{
    public uint steamid { get; set; }
    public string relationship { get; set; }
    public uint friend_since { get; set; }
}

        string jsonString;
        Friendslist jsonData;
        WebRequest wr;
        Stream objStream;
        wr = WebRequest.Create(sURL);
        objStream = wr.GetResponse().GetResponseStream();
        StreamReader objReader = new StreamReader(objStream);
        jsonString = objReader.ReadToEnd();
        jsonData = JsonConvert.DeserializeObject<Friendslist>(jsonString);

但是當我使用調試器檢查jsonData時,它始終為null。

你的模特應該像

public class Friend
{
    public string steamid { get; set; }
    public string relationship { get; set; }
    public int friend_since { get; set; }
}

public class Friendslist
{
    public List<Friend> friends { get; set; }
}

public class RootObject
{
    public Friendslist friendslist { get; set; }
}

現在您可以反序列化為

var root = JsonConvert.DeserializeObject<RootObject>(jsonString);

看到這個有用的網站http://json2csharp.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM