【发布时间】:2021-05-01 01:30:32
【问题描述】:
所以我的问题是双重的,首先我有我不理解的行为,这是由于我对 Json 的一些误解。因此,鉴于下面的第一个示例,我得到了我想要的。
{
"data":{
"stats":{
"kills":0,
"gamesPlayed":30,
"shotsFired":30
}
},
"other":1
}
代码:
JsonData jsonData = JsonMapper.ToObject (jsonString);
JsonData entries = jsonData["data"]["stats"];
m_kills = int.Parse(entries["kills"].ToString());
Debug.log(m_kills);
输出
“0”
但是,当我在下一个 json 的代码后面使用相同的逻辑时,我得到一个错误。 那么为什么在使用下面的Json和代码的时候会这样
{
"data":{
"otherInfo":2,
"scoreboard":[
{
"player":"bob",
"score":57,
"pdata":{
"a":40,
"b":20
}
},
{
"player":"joe",
"score":32,
"pdata":{
"a":20,
"b":13
}
}
],
"otherInfo2":5
}
}
代码
JsonData jsonData = JsonMapper.ToObject (jsonString);
JsonData entries = jsonData["data"];
m_info = int.Parse(entries["otherinfo"].ToString());
Debug.log(m_info);
我明白了
KeyNotFoundException:给定的键不在字典中。 System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) (at :0)
里面有什么问题?
JsonData entries = jsonData["data"];
m_info = int.Parse(entries["otherinfo"].ToString());
至于第二部分,第一部分只是为了更好地理解它。我的最终目标是获得每个玩家的得分(除了 bob 和 joe 希望它可以扩展),然后还获取 pdata ......所以猜这个问题是 3 倍,但对这 3 个中的任何一个的帮助将不胜感激!
谢谢
【问题讨论】: