使用MiniJSON解析嵌套JSON(Unity3D)

时间:2014-03-30 03:07:57

标签: json facebook unity3d nested

我非常新手 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:对不起,如果我的问题非常棒,或者我有很多负面消息,但这是我最后一次理解某事的机会,再次感谢。

1 个答案:

答案 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"];