Unity 使用LitJson 解析Json数据

Unity自带JsonUtility类,解析感觉不是很好用,数组解析不出来。fastJson 自己定义json数据结构的时候是好用,但是对于解析网络下载json感觉不是很好用。于是就用了LitJson,记得应该是我第一次解析json用的插件,但是很久没用,忘记怎么用了,于是记一下吧。

 RecData data = new RecData();
            
            JsonData jsonObj = JsonMapper.ToObject(www.downloadHandler.text);
          
            if (jsonObj["log_id"] != null)
            {
                data.log_id = (long)jsonObj["log_id"];
                data.result_num = (int)jsonObj["result_num"];
                var arrdata =  jsonObj["result"];
                
                data._result = new ResultData[arrdata.Count];

                for (int i = 0; i < arrdata.Count; i++)
                {
                    ResultData _item = new ResultData();
                    _item.score = float.Parse(arrdata[i]["score"].ToString());
                    _item.root = (string)arrdata[i]["root"];
                    _item.keyword = (string)arrdata[i]["keyword"];
                    data._result[i] = _item;
                }
            }

JsonData 就是就是类似一个字典,可以通过index 或者 json中数据的key  获取到数据,然后一层一层解析数据。

遇到数组可以遍历JsonData。

写数据用JsonWriter

        StringBuilder sb = new StringBuilder();
        JsonWriter writer = new JsonWriter(sb);

        writer.WriteArrayStart();

        writer.WriteObjectStart();
for(int i = 0;i<3;i++){
        writer.WritePropertyName("color");
        writer.Write("blue");
}
        writer.WriteObjectEnd();

        writer.WriteArrayEnd();

 

你可能感兴趣的:(Unity效果实现思路,LitJson)