您好,我将使用NewstonSoft JSon.NET的JSON反序列化为字符串var,如下所示:
data = {"123456789": [{
"queue": "RANKED_SOLO_5x5",
"name": "Karthus's Captains",
"entries": [{
"leaguePoints": 37,
"isFreshBlood": false,
"isHotStreak": false,
"division": "I",
"isInactive": false,
"isVeteran": true,
"losses": 124,
"playerOrTeamName": "Nickname",
"playerOrTeamId": "123456789",
"wins": 136
}],
"tier": "SILVER"
}]}
我想知道如何访问联盟积分,例如“条目”内部。提前致谢
答案 0 :(得分:0)
如果您不想将JSON反序列化为具体类(如this quite similar question中所述),您可以使用JSON.NET的JObject
- 类,如下所示:
string jsonData = GetJsonStringFormSomewhere();
var jObject = (JObject)JsonConvert.DeserializeObject(jsonData);
var idOrWhatever = jObject["123456789"].First();
var firstEntry = idOrWhatever["entries"].First();
var leaguePoints = firstEntry["leaguePoints"].Value<int>();
答案 1 :(得分:0)
使用Newtonsoft可以采用不同的方法。没有序列化到整个对象的一种方法可能就是这样;
JToken first = JObject.Parse(data);
JArray res = (JArray)first.SelectToken("123456789");
JToken entries = (JToken)JObject.Parse(res[0].ToString());
JArray result = JArray.Parse(entries.SelectToken("entries").ToString());
int leaguePoints = (int)result[0].SelectToken("leaguePoints");
我快速完成了这项工作并将其拆分为一行,这样你就可以看到每一步,但这意味着它不是很优雅,你当然可以连接它或使用linq来获取你的数据。