获取 JsonConvert 结果的第一个元素?
Get First Element of JsonConvert results?
我在这里使用 Riot 的 API:https://developer.riotgames.com/api/methods#!/909/3144
该请求允许您提供以逗号分隔的用户名列表和 returns 用户信息。
我正在执行我的代码如下:
string getUrl = "https://" + this.regionID + ".api.pvp.net/api/lol/" + this.regionID +
"/v1.4/summoner/by-name/" + summoner.Text + "?api_key=" + this.apiKey;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(getUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
dynamic json = JsonConvert.DeserializeObject<dynamic>(reader.ReadToEnd());
}
本returns结果如下:
{
"prorate": {
"id": 20335410,
"name": "ProRate",
"profileIconId": 693,
"revisionDate": 1420864656000,
"summonerLevel": 30
},
"jaxelrod": {
"id": 31034983,
"name": "Jaxelrod",
"profileIconId": 744,
"revisionDate": 1420999923000,
"summonerLevel": 30
}
}
现在,假设我想获取列表中返回的第一个用户的 ID。我知道我可以使用以下代码这样做:
json.prorate.id.ToString();
但是,我不一定知道列表中第一个元素的索引。在这种特定情况下,它是 prorate
,但每次调用都可能有所不同。我可以调用它来简单地检索数组的第一个元素吗?类似于 json.First().id.ToString()
?
您不需要使用动态
var userList = JsonConvert.DeserializeObject < Dictionary<string, User>>(json);
public class User
{
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; }
}
你也可以使用 Linq
var id = JObject.Parse(json).Children().First().Values<int>("id").First();
我在这里使用 Riot 的 API:https://developer.riotgames.com/api/methods#!/909/3144
该请求允许您提供以逗号分隔的用户名列表和 returns 用户信息。
我正在执行我的代码如下:
string getUrl = "https://" + this.regionID + ".api.pvp.net/api/lol/" + this.regionID +
"/v1.4/summoner/by-name/" + summoner.Text + "?api_key=" + this.apiKey;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(getUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
dynamic json = JsonConvert.DeserializeObject<dynamic>(reader.ReadToEnd());
}
本returns结果如下:
{
"prorate": {
"id": 20335410,
"name": "ProRate",
"profileIconId": 693,
"revisionDate": 1420864656000,
"summonerLevel": 30
},
"jaxelrod": {
"id": 31034983,
"name": "Jaxelrod",
"profileIconId": 744,
"revisionDate": 1420999923000,
"summonerLevel": 30
}
}
现在,假设我想获取列表中返回的第一个用户的 ID。我知道我可以使用以下代码这样做:
json.prorate.id.ToString();
但是,我不一定知道列表中第一个元素的索引。在这种特定情况下,它是 prorate
,但每次调用都可能有所不同。我可以调用它来简单地检索数组的第一个元素吗?类似于 json.First().id.ToString()
?
您不需要使用动态
var userList = JsonConvert.DeserializeObject < Dictionary<string, User>>(json);
public class User
{
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; }
}
你也可以使用 Linq
var id = JObject.Parse(json).Children().First().Values<int>("id").First();