我正在从一个游戏中请求3个不同用户的服务器。
结果得到了这个JSON字符串:
{
"d4r1o": {
"id": 1040806,
"name": "D4R1O",
"profileIconId": 596,
"revisionDate": 1399366400000,
"summonerLevel": 30
},
"snnovox": {
"id": 65728,
"name": "SN Novox",
"profileIconId": 548,
"revisionDate": 1399369344000,
"summonerLevel": 30
},
"gmbecken": {
"id": 421545,
"name": "GM Becken",
"profileIconId": 26,
"revisionDate": 1399160360000,
"summonerLevel": 30
}
}
所以为了反序列化这个字符串,我有这些类
public class RootObject
{
public SummonerDto d4r1o { get; set; }
public SummonerDto snnovox { get; set; }
public SummonerDto gmbecken { get; set; }
}
public class SummonerDto
{
public int id { get; set; }
public string name { get; set; }
public int profileIconId { get; set; }
public long revisionDate { get; set; }
public int summonerLevel { get; set; }
}
这很好用,但是如果用户想请求有关其自己的用户名的请求,例如:snyucax
{"snyucax": {
"id": 48985,
"name": "SN YucaX",
"profileIconId": 504,
"revisionDate": 1399257043000,
"summonerLevel": 30
}}
有没有一种方法可以使RootObject类中的一个对象仅允许我使用任何用户名,而不必将该名称指定为对象?
您应该为此使用字典。如果您使用的是JSON.NET,则代码如下所示:
var users = JsonConvert.DeserializeObject<Dictionary<string, SummonerDto>>(jsonDataString);
然后,您可以通过以下方式获取用户:
var user = users["d4r1o"];
e:好像Tim S
打败我了,哈哈。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句