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;
    }
相關文章
相關標籤/搜索