您的位置:首页 > Web前端 > JavaScript

JsonHelper(C#)

2016-09-27 00:15 357 查看
/// <summary>
/// Json帮助类
/// </summary>
public static class JsonHelper
{
/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string ToJson(this object o)
{
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 JsonToObject<T>(this 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> JsonToList<T>(this 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;
}

/// <summary>
/// 获取JSON格式的值,只支持.NET3.5+
/// </summary>
/// <param name="input">JSON文本</param>
/// <param name="getkey">已知的KEY</param>
/// <returns>获取已知KEY的值</returns>
public static string getJsonval(string input, string key)
{
if (string.IsNullOrEmpty(input) || string.IsNullOrEmpty(key)) return string.Empty;
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(input);
Dictionary<string, object> json = serializer.Deserialize(new JsonTextReader(sr), typeof(Dictionary<string, object>)) as Dictionary<string, object>;
object value;
json.TryGetValue(key, out value);
return value as string;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: