使用LitJson.dll生成存储与解析Json
2017-08-11 15:40
525 查看
最近在工作中使用到了Json数据在Unity中的生成存储于解析。LitJson在刚开始使用要注意这几个方法:
我主要用作每帧都需要储存一条状态数据,所以会存储非常大量的数据,为了方便后来分条解析,我将每帧数据都加入到一个链表中。用法如下所示:
以下是生成的一帧Json数据:
{“0”:”(21.3, 236.0, 109.6)”,”1”:”(5.5, 299.1, 309.5)”,”2”:”(351.3, 310.4, 212.2)”,”3”:”(320.9, 34.5, 358.6)”,”4”:”(40.4, 192.9, 301.6)”,”5”:”(353.3, 119.7, 307.9)”,”6”:”(5.4, 157.1, 103.0)”}
以下是Json解析:
JsonData //JsonData 是用来生成Json数据的时候用的一个类型,可以将数据结构做的相对清晰。 JsonMapper.ToJson() //JsonMapper.ToJson()是将JsonData格式的数据转换成Json格式字符串的函数。 JsonMapper.ToObject() //JsonMapper.ToObject()函数返回的是将字符串转换为JsonData类型的数据 JsonMapper.ToObject<T> //JsonMapper.ToObj b29d ect<T> 这个方法是将字符串转换为相应的泛型的数据 JsonData.ToJson() //JsonData.ToJson()是将JsonData类型的数据转换为字符串的函数
我主要用作每帧都需要储存一条状态数据,所以会存储非常大量的数据,为了方便后来分条解析,我将每帧数据都加入到一个链表中。用法如下所示:
private int timer; private List<String> allJointsData; private void Start() { allJointsData = new List<String>(); } //逐帧记录数据 private void Update() { JsonParsing(); } private void JsonDataGenerate() { JsonData jd = new JsonData(); jd["Data"] = new JsonData();//新添加一层关系时,需要再次 new JsonData() for (int i = 0; i < allSaveDataJoints.Count; i++) { jd["Data"][i.ToString()] = allSaveDataJoints[i].eulerAngles.ToString(); } //JsonMapper.ToJson()是将JsonData格式的数据转换成Json格式的字符串。 //这样方便在解析的时候将获取的字符串解析成Json格式的数据。 String tempStr = JsonMapper.ToJson(jd); allJointsData.Add(tempStr);//逐帧将数据添加到事先声明好的链表中。 timer++; }
以下是生成的一帧Json数据:
{“0”:”(21.3, 236.0, 109.6)”,”1”:”(5.5, 299.1, 309.5)”,”2”:”(351.3, 310.4, 212.2)”,”3”:”(320.9, 34.5, 358.6)”,”4”:”(40.4, 192.9, 301.6)”,”5”:”(353.3, 119.7, 307.9)”,”6”:”(5.4, 157.1, 103.0)”}
以下是Json解析:
private void JsonDataParsing() { //读取本地Txt里面的字符串类型的数据。 TextAsset binAsset = Resources.Load("FirstData", typeof(TextAsset)) as TextAsset; //JsonMapper.ToObject<T> 这个方法是将字符串转换为相应的泛型的数据,在这里JsonObject是我自己声明的一个结构体,在这段代码的下面。 JsonObject jo = JsonMapper.ToObject<JsonObject>(binAsset.ToString()); //将拿到的完整的String类型的数据逐条划分,因为之前存入结构体的allJointsData是字符串链表结构,所以很容易划分条目。 for (int i = 0; i < jo.allJointsData.Count; i++) { //JsonMapper.ToObject()函数返回的是将字符串转换为JsonData类型的数据 //JsonData.ToJson()是将JsonData类型的数据转换为字符串的函数。如果不转换成string类型的数据,还是JsonData类型的数据的话,还可以继续拿取更下层的结构里面的内容如JsonMapper.ToObject(jo.allJointsData[i])["Data"]["1"]等句柄根据自己数据类型的句柄来。 Debug.Log(JsonMapper.ToObject(jo.allJointsData[i])["Data"].ToJson()); } } //结构体,方便存储数据,但是我这个数据结构比较简单,按理来说也可以不使用结构体。 public struct JsonObject { public JsonObject(List<string> allJointsData) { this.allJointsData = allJointsData; } public List<string> allJointsData; }
相关文章推荐
- 使用LitJSON.dll处理json格式的数据示例
- C#使用LitJson解析JSON
- Unity3d使用LitJson解析服务器上的JSON
- Unity3D使用LitJson解析服务器上的JSON
- C#使用LitJson解析JSON
- unity3d 使用LitJson解析 JSON格式数据
- 自己动手使用 Swift 打造全功能 JSON 解析、生成库
- 如何使用fastJson来解析JSON格式数据和生成JSON格式数据
- .net使用Newtonsoft.Json.dll解析json过程的几种特殊情况处理
- 如何使用fastJson来解析JSON格式数据和生成JSON格式数据
- C#使用LitJson解析JSON
- 如何使用JSON Framework库解析与生成json数据(iphone网络篇二)
- Json数据格式介绍、使用Android自带类库完成Json生成与解析
- 浅谈使用java解析和生成JSON
- 如何使用JSON Framework库解析与生成json数据
- 使用 Jackson 库生成解析 json
- Json数据格式介绍、使用Android自带类库完成Json生成与解析
- 如何使用JSON Framework库解析与生成json数据
- Swift-使用NSJSONSerialization生成或解析JSON数据
- c# json解析 引用LitJson.dll