100 lines
3.2 KiB
C#
100 lines
3.2 KiB
C#
/*
|
|
* json 帮助类
|
|
* 肖俊
|
|
* 2017-7-11
|
|
*
|
|
*/
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
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)
|
|
{
|
|
//if (o == null)
|
|
// return "{}";
|
|
string json = JsonConvert.SerializeObject(o);
|
|
return json;
|
|
}
|
|
|
|
/// <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;
|
|
}
|
|
|
|
public static T DeserializeJsonToObjectNullable<T>(string json) where T : class
|
|
{
|
|
if (string.IsNullOrEmpty(json))
|
|
return json as T;
|
|
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;
|
|
}
|
|
|
|
public static JObject JObjectParse(string json)
|
|
{
|
|
try
|
|
{
|
|
JObject obj = 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 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;
|
|
}
|
|
}
|
|
}
|