92 lines
2.9 KiB
C#
92 lines
2.9 KiB
C#
/*
|
|
* json 帮助类
|
|
* 肖俊
|
|
* 2017-7-11
|
|
*
|
|
*/
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace AllBase
|
|
{
|
|
/// <summary>
|
|
/// Json帮助类
|
|
/// </summary>
|
|
public static class JsonHelper
|
|
{
|
|
/// <summary>
|
|
/// 将对象序列化为JSON格式
|
|
/// </summary>
|
|
/// <param name="o">对象</param>
|
|
/// <returns>json字符串</returns>
|
|
public static string SerializeObject(object o)
|
|
{
|
|
string json = JsonConvert.SerializeObject(o);
|
|
return json;
|
|
}
|
|
|
|
public static Newtonsoft.Json.Linq.JObject JObjectParse(string json)
|
|
{
|
|
try
|
|
{
|
|
Newtonsoft.Json.Linq.JObject obj = Newtonsoft.Json.Linq.JObject.Parse(json);
|
|
return obj;
|
|
}
|
|
catch
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 解析JSON字符串生成对象实体
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
|
|
/// <returns>对象实体</returns>
|
|
public static T DeserializeJsonToObject<T>(string json) where T : class
|
|
{
|
|
JsonSerializer serializer = new JsonSerializer();
|
|
StringReader sr = new StringReader(json);
|
|
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
|
|
T t = o as T;
|
|
return t;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 解析JSON数组生成对象实体集合
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
|
|
/// <returns>对象实体集合</returns>
|
|
public static List<T> DeserializeJsonToList<T>(string json) where T : class
|
|
{
|
|
JsonSerializer serializer = new JsonSerializer();
|
|
StringReader sr = new StringReader(json);
|
|
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
|
|
List<T> list = o as List<T>;
|
|
return list;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 反序列化JSON到给定的匿名对象.
|
|
/// </summary>
|
|
/// <typeparam name="T">匿名对象类型</typeparam>
|
|
/// <param name="json">json字符串</param>
|
|
/// <param name="anonymousTypeObject">匿名对象</param>
|
|
/// <returns>匿名对象</returns>
|
|
public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
|
|
{
|
|
T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
|
|
return t;
|
|
}
|
|
|
|
public static object JsonToObject(string jsonString)
|
|
{
|
|
return JsonConvert.DeserializeObject(jsonString);
|
|
}
|
|
|
|
}
|
|
}
|