using LitJson; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Collections; using System.Collections.Generic; using UnityEngine; public class JsonManage : MonoSingleton<JsonManage> { /// <summary> /// 通用解析Jsong 解析为任意类 ,请求成功返回 T ,失败返回null/0 /// </summary> /// <typeparam name="T"> 需要解析的类型 </typeparam> /// <param name="message"></param> /// <returns></returns> public T ToJsonClass<T>(string message) { Debug.Log(message); JObject data = null; var isSucess = CheckMessage(message, out data); if (!isSucess) { return default(T); } message = data["data"].ToString(); if (string.IsNullOrWhiteSpace(message) || message == "[]" || message == "{\r\n \"list\": []\r\n}") { return default(T); } T jsonClass = JsonMapper.ToObject<T>(message); return jsonClass; } /// <summary> /// 检查获取的信息是否正确 /// </summary> /// <param name="message"></param> /// <param name="data"></param> /// <returns></returns> public bool CheckMessage(string message, out JObject data) { bool isSucess = true; data = JsonConvert.DeserializeObject<JObject>(message); if (data["code"].ToString() != "200") { isSucess = false; data = null; Debug.LogError("Json解析失败 " + message); } return isSucess; } }