微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity3D中Json解析的几种方式

Json解析的几种方式:

1.比较流行的listjson(数据对象必须和json一对一):链接: https://pan.baidu.com/s/14o_ggxU4-FmOWAc_ANDeww 提取码: 3qas
listjson提供了多样化的解析,可以解析成JsonData,也可以通过JsonMapper 转成自定义的mode数据对象,功能比较丰富,但是在通过JsonMapper转成自定的对象时,自定义对象的字段要和解析的json字段一对一(json里面的字段,自定义的对象一定要有),不然会解析失败,listjson解析很严谨

JsonData da = JsonMapper.ToObject(jsonData); 通过da["xx"]获取
EquipmentBindingData da = JsonMapper.ToObject<EquipmentBindingData>(jsonData) ;//赋值在EquipmentBindingData类型的变量中
@H_502_9@注意:实例化类,类中变量可以设置{get;set;}

2.目前unity自带 JsonUtility(不能解析复杂的json)

EquipmentBindingData equipmentData = JsonUtility.FromJson<EquipmentBindingData>(jsonData)
@H_502_9@注意:
类中变量不可以可以设置{get;set;}
定义类要 [Serializable] 进行实例化

3.Newtonsoft.Json (推荐可以解析复杂的json,不需要和json字段一对一 ,灵活 :链接: https://pan.baidu.com/s/14JegrgxgUCPDwUEJRQIm4Q 提取码: uqcu

EquipmentBindingData da = JsonConvert.DeserializeObject<EquipmentBindingData>(jsonData);

@H_502_9@例子:

{
"data":[
{
"k":"工艺品",
"v":"10000167660245",
"t":"1585899359000"
},
{
"k":"石头",
"v":"10000167660244",
"t":"1585899359000"
},
{
"k":"书本",
"v":"10000167660243",
"t":"1585899359000"
}
],
"success":true
}

解析对象类:

    [Serializable]
    public class DevData
    {
        /// <summary>
        /// 名称
        /// </summary>
        public string k;
        /// <summary>
        /// 
        /// </summary>
        public string v;
        /// <summary>
        /// 
        /// </summary>
        public string t;
    }

    [Serializable]
    public class EquipmentBindingData
    {
        /// <summary>
        /// 
        /// </summary>
        public List<DevData> data = new List<DevData>();
        /// <summary>
        /// 
        /// </summary>
        public bool success;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐