C# 获取JsonConvert结果的第一个元素?

C# 获取JsonConvert结果的第一个元素?,c#,json.net,C#,Json.net,我在这里使用的是Riot的API: 该请求允许您提供以逗号分隔的用户名列表,并返回用户信息 我正在执行我的代码,如下所示: 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 = (

我在这里使用的是Riot的API:

该请求允许您提供以逗号分隔的用户名列表,并返回用户信息

我正在执行我的代码,如下所示:

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());
}
{
   "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();

但是,我不一定知道列表中第一个元素的索引。在这种特定情况下,它的
按比例分配
,但每次调用都可能有所不同。我是否可以简单地调用来检索数组的第一个元素?类似于
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; }
}
var userList=JsonConvert.DeserializeObject(json);
公共类用户
{
公共int id{get;set;}
公共字符串名称{get;set;}
public int profileIconId{get;set;}
公共长修订日期{get;set;}
公共int召唤级别{get;set;}
}
您也可以使用Linq

var id = JObject.Parse(json).Children().First().Values<int>("id").First();
var id=JObject.Parse(json).Children().First().Values(“id”).First();

但是如果Riot更改了API怎么办?这会破坏一切吗?另外,当我只需要一段数据时,为所有这些创建一个类似乎是毫无意义的。。。然后我扔掉它,不再使用它的其余部分。此外,获取与“Newtonsoft.Json.Linq.JObject.Parse(string)”的最佳重载方法匹配的错误
有一些无效参数。