using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;
using System.IO;

namespace JiaWel.Utilities.Json
{
public class JsonConvert
{
/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <typeparam name="T">实体类</typeparam>
/// <param name="entity">实体</param>
/// <returns>json字符串</returns>
public string EntityToJson<T>(T entity)
{
try
{
return Newtonsoft.Json.JsonConvert.SerializeObject(entity);
}
catch (Exception)
{
ExceptionHelper.WriteException("EntityToJson<T>", "");
throw;
}
}

/// <summary>
/// 解析JSON字符串生成对象实体
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
/// <returns>对象实体</returns>
public T DeserializeJsonToObject<T>(string json) where T : class
{
try
{
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;
}
catch (Exception)
{
ExceptionHelper.WriteException("DeserializeJsonToObject<T>", "");
throw;
}
}

/// <summary>
/// 解析JSON数组生成对象实体集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
/// <returns>对象实体集合</returns>
public List<T> DeserializeJsonToList<T>(string json) where T : class
{
try
{
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;
}
catch (Exception ex)
{
ExceptionHelper.WriteException("DeserializeJsonToList<T>", "");
throw;
}
}

}
}

最新文章

  1. Polynomial Library in OpenCascade
  2. C# Enum,Int,String的互相转换 枚举转换
  3. cpp 4个类型转换
  4. .net微信公众号开发——基础接口
  5. IE9以上 CSS文件因Mime类型不匹配而被忽略 其他浏览器及IE8以下显示正常
  6. EntLib Unity父类的依赖注入问题
  7. sql,插入最大值加1
  8. Ubuntu安装samba服务器
  9. iOS 8中CLLocationManager及MKMapView showUserLocation失败的解决的方法
  10. ST-1之乱码bug
  11. Java生成二维码--QRGen
  12. Java 线程基本知识
  13. javaWeb事务
  14. linux 下修改etc/profile文件
  15. [Swift]LeetCode291. 单词模式 II $ Word Pattern II
  16. Collection 接口
  17. HardNet解读
  18. [leetcode]40. Combination Sum II组合之和之二
  19. ElasticSearch权威指南学习(映射和分析)
  20. Hadoop2源码分析-YARN 的服务库和事件库

热门文章

  1. Spark JavaRDD、JavaPairRDD、Dataset相互转换与打印
  2. Flink学习笔记:Operators之CoGroup及Join操作
  3. centos7 systemd 必知必会
  4. 编程开发之--Oracle数据库--存储过程使用动态参数绑定(3)
  5. [原创]Redis 持久化说明及配置
  6. poi操作Excel并修改单元格背景色
  7. 1093 字符串A+B (20 分)
  8. BZOJ - 2741 分块维护最大连续异或和
  9. yield return 的使用方法
  10. Locust 类的使用