Unity3D中Json解析的几种方式

Json解析的几种方式:json

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

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

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

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

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

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

例子:get

{
"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;
    }
相关文章
相关标签/搜索