http://blog.csdn.net/xuexiaodong009/article/details/46998069

json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢?

主要有一下几种

1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型

2使用开源的类库Newtonsoft.Json

3使用JavaScriptSerializer类

4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。

 

1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型

要写成通用的核心就是使用反射。

2使用开源的类库Newtonsoft.Json,很方便,.net的各个版本都有。

  1. /// <summary>
  2. /// 对象转为json
  3. /// </summary>
  4. /// <typeparam name="ObjType"></typeparam>
  5. /// <param name="obj"></param>
  6. /// <returns></returns>
  7. public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class
  8. {
  9. string s = JsonConvert.SerializeObject(obj);
  10. return s;
  11. }
  12. /// <summary>
  13. /// json转为对象
  14. /// </summary>
  15. /// <typeparam name="ObjType"></typeparam>
  16. /// <param name="JsonString"></param>
  17. /// <returns></returns>
  18. public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class
  19. {
  20. ObjType s = JsonConvert.DeserializeObject<ObjType>(JsonString);
  21. return s;
  22. }

3JavaScriptSerializer类 ,使用.NET
Framework
3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化。需要添加程序集System.Web.Extensions.dll。

  1. /// <summary>
  2. /// 对象转为json
  3. /// </summary>
  4. /// <typeparam name="ObjType"></typeparam>
  5. /// <param name="obj"></param>
  6. /// <returns></returns>
  7. public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class
  8. {
  9. JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
  10. string s = jsonSerializer.Serialize(obj);
  11. return s;
  12. }
  13. /// <summary>
  14. /// json转为对象
  15. /// </summary>
  16. /// <typeparam name="ObjType"></typeparam>
  17. /// <param name="JsonString"></param>
  18. /// <returns></returns>
  19. public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class
  20. {
  21. JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
  22. ObjType s = jsonSerializer.Deserialize<ObjType>(JsonString);
  23. return s;
  24. }

4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。具体可参考

C# .net中json字符串和对象之间的转化方法的更多相关文章

  1. Gson进行json字符串和对象之间的转化

    Gson可以实现对象与json字符串之间的转化,以下是在Android中的示例代码. Gson主页:https://code.google.com/p/google-gson/ public clas ...

  2. 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换

    [源码下载] 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换 作者:webabcd 介绍速战速决 之 PHP ...

  3. js中json字符串与对象的转换及是否为空

    1.json对象(数组)转字符串 var b=[ { "CategoryName" : "Beverages", "ProductName" ...

  4. Google Gson实现JSON字符串和对象之间相互转换

    User实体类 package com.test.json; /** * User 实体类 */ public class User { private String name; private St ...

  5. JSON字符串和对象之间的转换

    JSON(JavaScript Object Notation) 是JavaScript编程语言的一个子集.正因JSON是JavaScript的一个子集,所以它可清晰的运用于此语言中. eval函数 ...

  6. 客户端、服务器端中JSON字符串与对象的转换

    客户端: 字符串转为对象:$.parseJSON(json); 对象转为字符串:JSON.stringify(_pasteDataItem) 服务器端(c#): 对象: [DataContract(N ...

  7. Java中Json字符串转换为对象的方法(多层List集合)

    借鉴自:http://www.jb51.net/article/91142.htm 在将json字符串转换成对象flightInfo时,当flightInfo对象中有List<flightCla ...

  8. jQuery 中json字符串与对象互转

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj);

  9. Java中JSON字符串和对象的互转

    对象转换成json字符串: JSONObject.toJSONString(switchmes) JSON字符串转换成对象: Switchmes switchmes=(Switchmes) JSONO ...

随机推荐

  1. HDU 1014 Uniform Generator 欧几里得

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 解题思路: 1. 把题目意思读懂后,明白会输入两个数,然后根据题中的公式产生一系列伪随机数,看这 ...

  2. memcache调整value大小限制

    > *事件背景: 当Redis有问题时按预案就会切换到本机memcache,但是我们首页 key:value现 在是1.5M同时memcache item限制是1M,导致首页写入memcache ...

  3. Hibernate学习之路-- -映射 继承关系(subclass , joined-subclass,union-subclass )

    1.继承映射 举例:对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念.Hibernate 的继承映射可以理解持久化类之间的继承关系.例如:人和学生之间的关系.学生继承了人,可以认为学生是一 ...

  4. java web学习笔记 servlet

    关于java web web.xml中一般配置的都是与servlet先关的可以配置servlet filter listener context-param用来配置web应用的启动参数,可用通过Ser ...

  5. Web Api 基于Zookeeper的服务注册与发现

    安装与差异 Zookeeper安装请参考我上篇文章 http://www.cnblogs.com/woxpp/p/7700368.html 基于Nginx的服务提供和消费 基于zookeeper的服务 ...

  6. java的热部署和热加载

    ps:热部署和热加载其实是两个类似但不同的概念,之前理解不深,so,这篇文章重构了下. 一.热部署与热加载 在应用运行的时升级软件,无需重新启动的方式有两种,热部署和热加载. 对于Java应用程序来说 ...

  7. oracle用户被锁定

    sqlplus sys/password@localhost:1521/cmsx as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期一 7月 ...

  8. hdu4893 Wow! Such Sequence!

    线段树结点上保存一个一般的sum值,再同一时候保存一个fbsum,表示这个结点表示的一段数字若为斐波那契数时的和 当进行3操作时,仅仅用将sum = fbsum就可以 其它操作照常进行,仅仅是单点更新 ...

  9. jquery 自定义选择器

    // HTML 代码 <body> <div id="divid1" class="divclass">白色</div> & ...

  10. Python之Metaclass详解,Python之元类

    本人Java程序员一枚,这几天闲来无事就自学了下Python,学到Metaclass感觉有点迷惑,就在网上查相关资料,在栈溢出(stackoverflow)网站上看到一个关于metaclass的回答, ...