温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Unity 中有哪些解析json的方式

发布时间:2021-06-24 15:36:22 来源:亿速云 阅读:560 作者:Leah 栏目:大数据

本篇文章给大家分享的是有关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<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);


以上就是Unity 中有哪些解析json的方式,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI