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