using Nancy.Json; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Collections.Generic; namespace MaterialTraceabilityUI.Common { /// <summary> /// Json格式转换 /// </summary> public class JsonChange { /// <summary> /// Model 实体转json /// </summary> /// <param name="Model">可以是单个实体,也可是实体集(即:ToList())</param> /// <returns></returns> public static string ModeToJson(object Model) { JavaScriptSerializer serializer = new JavaScriptSerializer(); string str = serializer.Serialize(Model); return str; } /// <summary> /// object转dictionary /// </summary> /// <param name="jsonData"></param> /// <returns></returns> public static Dictionary<string, object> objectToDictionary(string jsonData) { Dictionary<string, object> result = new Dictionary<string, object>(); var inf = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonData); foreach (KeyValuePair<string, object> 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<string, object> 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<string, object> ite in info) { result.Add(item.Key + ite.Key, ite.Value); } continue; } } result.Add(item.Key, item.Value); } return result; } } }