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; }