unity 常用的几种解析json方式
2018-01-06 16:16
579 查看
目前接触的unity 解析json 有几种:
1.比较流行的listjson(数据对象必须和json一对一)
2.目前unity自带 JsonUtility(不能解析复杂的json)
3.Newtonsoft.Json (推荐可以解析复杂的json,不需要和json字段一对一 ,灵活)
(下载地址:https://github.com/SaladLab/Json.Net.Unity3D/releases)
listjson 对json 解析提供多样化,可以解析成JsonData,也可以通过JsonMapper 转成自定义的mode数据对象。
listJson功能比较丰富,但是在通过JsonMapper转成自定的对象时,自定义对象的字段要和解析的json字段一对一(json里面的字段,自定义的对象一定要有),不然会解析失败。
例如:
jison:
要对应Json 的mod有 3个
分别是 OO, TestModel,TestModel2
以上是要解析的json 和 对应的自定义model数据
1.使用 listJson 解析数据
运行解析会报错,因为json字符串 包含了很多对象,和字段
而 数据 OO, TestModel,TestModel2对象,并没有全部和json字符串字段一 一对应,listjson解析很严谨。
2.使用 Newtonsoft.Json
运行不会报错,完全解析。
3.使用unity自带 JsonUtility
运行。有的对象解析不出,会报错
1.比较流行的listjson(数据对象必须和json一对一)
2.目前unity自带 JsonUtility(不能解析复杂的json)
3.Newtonsoft.Json (推荐可以解析复杂的json,不需要和json字段一对一 ,灵活)
(下载地址:https://github.com/SaladLab/Json.Net.Unity3D/releases)
listjson 对json 解析提供多样化,可以解析成JsonData,也可以通过JsonMapper 转成自定义的mode数据对象。
listJson功能比较丰富,但是在通过JsonMapper转成自定的对象时,自定义对象的字段要和解析的json字段一对一(json里面的字段,自定义的对象一定要有),不然会解析失败。
例如:
jison:
string json = @" { ""d"":""d"", ""album"" : { ""cc"":""cc"", ""name"" : ""The Dark Side of the Moon"", ""artist"" : ""Pink Floyd"", ""year"" : 1973, ""tracks"" : [ ""Speak To Me"", ""Breathe"", ""On The Run"" ], ""tt"":""tt"", ""tracksOb"":[{""trackOb"":""11""},{""trackOb"":""22""}], ""bb"":""bb"" } } ";
要对应Json 的mod有 3个
分别是 OO, TestModel,TestModel2
public class OO { public string d; public TestModel album; public string bb; } public class TestModel { public string name; public string artist; public int year; public string[] tracks; public TestModel2[] tracksOb; } public class TestModel2 { public string trackOb; }
以上是要解析的json 和 对应的自定义model数据
1.使用 listJson 解析数据
解析方法 public static T GetData2<T>(string text) where T : class { //JsonData table = AnalysisJson.Analy<JsonData>(text); T t = JsonMapper.ToObject<T>(table.ToJson()); //T t = JsonConvert.DeserializeObject<T>(text); //T t = JsonUtility.FromJson<T>(text); return t; }
OO o = GetData2<OO>(json);
运行解析会报错,因为json字符串 包含了很多对象,和字段
而 数据 OO, TestModel,TestModel2对象,并没有全部和json字符串字段一 一对应,listjson解析很严谨。
2.使用 Newtonsoft.Json
解析方法 public static T GetData2<T>(string text) where T : class { //JsonData table = AnalysisJson.Analy<JsonData>(text); //T t = JsonMapper.ToObject<T>(table.ToJson()); T t = JsonConvert.DeserializeObject<T>(text); //T t = JsonUtility.FromJson<T>(text); return t; }
OO o = GetData2<OO>(json);
运行不会报错,完全解析。
3.使用unity自带 JsonUtility
解析方法 public static T GetData2<T>(string text) where T : class { //JsonData table = AnalysisJson.Analy<JsonData>(text); //T t = JsonMapper.ToObject<T>(table.ToJson()); // T t = JsonConvert.DeserializeObject<T>(text); T t = JsonUtility.FromJson<T>(text); return t; }
OO o = GetData2<OO>(json);
运行。有的对象解析不出,会报错
相关文章推荐
- JSON.parse解析json数据及取值的几种方式
- 关于iOS开发 Json解析的几种方式
- Json详解和常用的解析方式
- java 解析/操作 xml 几种常用方式 xml的增加/删除/修改
- JSON的几种解析方式的比较
- .NET中常用的几种解析JSON方法
- Android解析JSON数据几种方式对比
- C#解析JSON几种方式-整理
- 常用的json解析方式
- JSON解析的几种方式
- Json与Java间传参常用的几种方式
- java解析xml常用的几种方式总结
- Java解析json常用方式
- string解析为json的几种方式(转)
- json解析的几种方式
- json解析的常用方式(不使用第三方库)
- Json与Java间传参常用的几种方式 推荐
- iOS中关于json解析的几种方式
- 常用的几种JSON方式
- iOS 常用解析方式(XML、Json)