using Newtonsoft.Json;
using System.Runtime.Serialization.Json;
using System.Text; public class JsonHelper
{
/// <summary>
/// 生成Json格式
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string GetJson<T>(T obj)
{
DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream stream = new MemoryStream())
{
json.WriteObject(stream, obj);
string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
}
}
/// <summary>
/// 获取Json的Model
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="szJson"></param>
/// <returns></returns>
public static T ParseFromJson<T>(string szJson)
{
T obj = Activator.CreateInstance<T>();
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
return (T)serializer.ReadObject(ms);
}
} /// <summary>
/// 解析JSON数组生成对象实体集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json数组字符串(eg.[{"ID":"1","Name":"lttr"}])</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;
}
}

最新文章

  1. 【FLUENT案例】03:冲蚀
  2. python3 黑板客爬虫闯关游戏(三)
  3. HTML和CSS经典布局1
  4. 东大OJ-1544: GG的战争法则
  5. 做bbs论坛项目的收获(1)
  6. 无法创建链接服务器 &quot;(null)&quot; 的 OLE DB 访问接口 &quot;Microsoft.Ace.OLEDB.12.0&quot; 的实例。
  7. 【Stage3D学习笔记续】山寨Starling(六):动画实现和测试
  8. 从 mian 函数开始一步一步分析 nginx 执行流程(一)
  9. 原来你们是这种key-value存储
  10. c++读取ccbi
  11. 创建keystone的catalog时提示:‘Internal Server Error (HTTP 500)’
  12. 超简单的js评价小星星
  13. java中继承和组合的区别
  14. CSS组件
  15. SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法
  16. Linux中安装硬盘后对硬盘的分区以及挂载
  17. [转]关于oracle sql语句查询时表名和字段名要加双引号的问题
  18. Centos6下zookeeper集群部署记录
  19. const typedef 和指针的问题(这里必须初始化的才初始化了,不必须的则没有初始化)
  20. FZU 2277 Change(dfs序+树状数组)

热门文章

  1. 【alpha】Scrum站立会议第2次....10.17
  2. 重载和const参数
  3. Unsupported major.minor version 52.
  4. Java字符串2
  5. [OS] 操作系统-进程线程-经典面试笔试题
  6. 【Windows】Windows服务管家婆之Service Control Manager
  7. [51nod1325]两棵树的问题
  8. [洛谷P2495][SDOI2011]消耗战
  9. 【以前的空间】BIT的两个小小运用
  10. POJ3977:Subset——题解(三分+折半搜索)