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