如何在unity3d中使用MiniJson?

时间:2013-09-02 06:56:03

标签: unity3d

    The Code like this:
string jsonString = "{ \"array\": [[1.44,22,33], [1.445,2222,3333]]" +
                    "\"object\": {\"key1\":\"value1\", \"key2\":256}, " +
                    "\"string\": \"The quick brown fox \\\"jumps\\\" over the lazy dog \", " +
                    "\"unicode\": \"\\u3041 Men\\u00fa sesi\\u00f3n\", " +
                    "\"int\": 65536, " +
                    "\"float\": 3.1415926, " +
                    "\"bool\": true, " +
                    "\"null\": null }";

//Dictionary<string, object> dict = MiniJSON.LC_MiniJson.Deserialize(jsonString) as Dictionary.<string. Object>;
Dictionary<string, object> dict = MiniJSON.LC_MiniJson.Deserialize(jsonString) as Dictionary<string, object>;
Debug.Log("deserialized: " + dict.GetType());
//List<object> lst = (dict["array"]) as   List<object>;

Debug.Log("dict['array'][0]: " + (((dict["array"]) as List<object>)[0]));
Debug.Log("dict['string']: " + dict["string"].ToString());
Debug.Log("dict['float']: " + dict["float"]); // floats come out as doubles
Debug.Log("dict['int']: " + dict["int"]); // ints come out as longs
Debug.Log("dict['unicode']: " + dict["unicode"].ToString());

Dictionary<string, object> dict2 = (dict["object"]) as Dictionary<string, object>;

string str = MiniJSON.LC_MiniJson.Serialize(dict2);

现在我想得到“数组”的值。我不知道如何使用minijson获取值。谁经历过?

1 个答案:

答案 0 :(得分:1)

答案在代码中。

((dict["array"]) as List<object>)[0]

这将从数组中返回值。 如果要创建List,可以执行以下操作:

var dict = Json.Deserialize(jsonString) as Dictionary.<String,System.Object>;

var arrayList = new List.<System.Object>();
arrayList = ((dict["array"]) as List.<System.Object>);

Debug.Log("array[0]: "+arrayList[0]);

您也可以像在javascript中一样访问变量,例如:Debug.Log(data.array[0]); Debug.Log(data.object.key1);,但您需要为该json字符串创建一个类。 见:https://gist.github.com/Edudjr/cb407c67e76ac36bcfac#file-classminijson-js