我非常新手 JSON ,因此我遇到了嵌套JSON&#39> 的问题。 我在没有任何运气的情况下搜索了两天,我看到了很多关于如何反序列化嵌套JSON的例子,但是我的努力失败了,所以最后一次机会我来到这里。
我想知道的是我如何使用MiniJson反序列化嵌套类,JSONString是一个facebook,但我想知道实现它的方法。
以下是我试图反序列化的JSONString的示例。
{"data":
[{"user":{"name":"xxxxxxxxx1","id":"xxxxxxxxxx2"},"score":7,
"application":
{"name":"APPNAME","namespace":"APPNAMESPACE","id":"xxxxxxxxxx3"}}]}
提前致谢...
我尝试了很多东西,这是我做过的最后一次尝试,不是很好,但我真的像疯了一样:
object dataObject;
object scoreObject;
var dict = Json.Deserialize(response.Text) as Dictionary<string,object>;
Debug.Log(response.Text);
var scores = new List<object>();
if(dict.TryGetValue ("data", out scoreObject)) {
Debug.Log("Hi");
scores = (string)(((Dictionary<string, object>)scoreObject) ["score"]);
if(scores.Count > 0) {
var scoreDict = ((Dictionary<string,object>)(scores[0]));
var score = new Dictionary<string, string>();
score["score"] = (string)scoreDict["score"];
Debug.Log((string)scoreDict["score"]);
}
}
PD:对不起,如果我的问题非常棒,或者我有很多负面消息,但这是我最后一次理解某事的机会,再次感谢。
答案 0 :(得分:2)
您的问题在于数据包含数组而不是对象,您需要获取数据数组的第一个元素,然后获取值分数。
这样的事情:
var dict = Json.Deserialize(response.Text) as Dictionary<string,object>;
List<object> scores = dict["data"] as List<object>;
Dictionary<string,object> scoreData = scores[0] as Dictionary<string,object>;
object score = scoreData["score"];