C# json 用 Json.NET 解析
C# json parsing with Json.NET
我正在使用网络为 Steam 制作好友列表管理工具 API。
以下 JSON 由 API 返回:
{
"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 总是空的。
你的模型应该是这样的
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/
我正在使用网络为 Steam 制作好友列表管理工具 API。 以下 JSON 由 API 返回:
{
"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 总是空的。
你的模型应该是这样的
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/