Unity 中有哪些解析json的方式
本篇文章给大家分享的是有关Unity 中有哪些解析json的方式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
目前接触的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:
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(string text) where T : class { //JsonData table = AnalysisJson.Analy (text); T t = JsonMapper.ToObject (table.ToJson()); //T t = JsonConvert.DeserializeObject (text); //T t = JsonUtility.FromJson (text); return t; }
OO o = GetData2(json);
运行解析会报错,因为json字符串 包含了很多对象,和字段
而 数据 OO, TestModel,TestModel2对象,并没有全部和json字符串字段一 一对应,listjson解析很严谨。
2.使用 Newtonsoft.Json
解析方法 public static T GetData2(string text) where T : class { //JsonData table = AnalysisJson.Analy (text); //T t = JsonMapper.ToObject (table.ToJson()); T t = JsonConvert.DeserializeObject (text); //T t = JsonUtility.FromJson (text); return t; }
OO o = GetData2(json);
运行不会报错,完全解析。
3.使用unity自带 JsonUtility
解析方法 public static T GetData2(string text) where T : class { //JsonData table = AnalysisJson.Analy (text); //T t = JsonMapper.ToObject (table.ToJson()); // T t = JsonConvert.DeserializeObject (text); T t = JsonUtility.FromJson (text); return t; }
OO o = GetData2(json);
以上就是Unity 中有哪些解析json的方式,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。