using Nancy.Json; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; namespace Aucma.Scada.Api.Common { public class JsonChange { /// /// Model 实体转json /// /// 可以是单个实体,也可是实体集(即:ToList()) /// public string ModeToJson(object Model) { string str = ""; JavaScriptSerializer serializer = new JavaScriptSerializer(); str = serializer.Serialize(Model); return str; } /// /// json实体转Model /// /// /// /// public T JsonToMode(string jsonStr) { T info = default(T); JavaScriptSerializer serializer = new JavaScriptSerializer(); info = serializer.Deserialize(jsonStr); return info; } /// /// object转dictionary /// /// /// public Dictionary objectToDictionary(string jsonData) { Dictionary result = new Dictionary(); var inf = JsonConvert.DeserializeObject>(jsonData); foreach (KeyValuePair item in inf) { if (item.Value != null) { var type = item.Value.GetType(); if (type == typeof(JObject)) { var info = objectToDictionary(JsonConvert.SerializeObject(item.Value)); foreach (KeyValuePair ite in info) { result.Add(ite.Key, ite.Value); } continue; } else if (type == typeof(JArray)) { JArray array = (JArray)item.Value; var info = objectToDictionary(JsonConvert.SerializeObject(array[0])); foreach (KeyValuePair ite in info) { result.Add(item.Key + ite.Key, ite.Value); } continue; } } result.Add(item.Key, item.Value); } return result; } } }