http://wo13145219.iteye.com/blog/2022667

http://json2csharp.chahuo.com/

  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.HtmlControls;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.WebControls.WebParts;
  12. using System.Xml.Linq;
  13. using System.IO;
  14. using System.Text;
  15. using System.Runtime.Serialization.Json;
  16. using System.Collections.Generic;
  17. using System.Reflection;
  18. using System.Web.Script.Serialization;
  19. namespace AjaxTest
  20. {
  21. public partial class Json : System.Web.UI.Page
  22. {
  23. protected void Page_Load(object sender, EventArgs e)
  24. {
  25. //Response.Write(getJsonInfo());
  26. //string strReg = "\\\\";
  27. //strReg = strReg.Replace("\\\\", "\\");
  28. ////Response.Write(strReg);
  29. //方法一
  30. Response.Write(disJsonInfo(getObjectByJson(getJsonInfo())));      //方法二
  31. Response.Write(JsonInfo.getInfo());
  32. }
  33. /// <summary>
  34. /// 获取将实体类转换为json数据(目的是为了更快在网页上传递数据)
  35. /// </summary>
  36. /// <returns></returns>
  37. public string getJsonInfo()
  38. {
  39. UserInfo userInfo = new UserInfo();
  40. //userInfo.strNameInfo = "张三";
  41. //userInfo.intAgeInfo = 23;
  42. //userInfo.intTelInfo = 66666;
  43. //userInfo.strAddrInfo = "北京市";
  44. //userInfo.strPasswordInfo = "yhx.123";
  45. userInfo.strName = "张三";
  46. userInfo.intAge = 23;
  47. userInfo.strPsd = "yhx.123";
  48. userInfo.intTel = 2324;
  49. userInfo.strAddr = "北京市";
  50. //将对象序列化json
  51. DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UserInfo));
  52. //创建存储区为内存流
  53. System.IO.MemoryStream ms = new MemoryStream();
  54. //将json字符串写入内存流中
  55. serializer.WriteObject(ms, userInfo);
  56. System.IO.StreamReader reader = new StreamReader(ms);
  57. ms.Position = 0;
  58. string strRes = reader.ReadToEnd();
  59. reader.Close();
  60. ms.Close();
  61. return strRes;
  62. }
  63. /// <summary>
  64. /// 将json数据转换成实体类
  65. /// </summary>
  66. /// <returns></returns>
  67. private static List<UserInfo> getObjectByJson(string jsonString)
  68. {
  69. // 实例化DataContractJsonSerializer对象,需要待序列化的对象类型
  70. DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<UserInfo>));
  71. //把Json传入内存流中保存
  72. jsonString = "[" + jsonString + "]";
  73. MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
  74. // 使用ReadObject方法反序列化成对象
  75. object ob = serializer.ReadObject(stream);
  76. List<UserInfo> ls = (List<UserInfo>)ob;
  77. return ls;
  78. }
  79. /// <summary>
  80. /// 在页面上显示转换为实体类数据
  81. /// </summary>
  82. private string  disJsonInfo(List<UserInfo> us)
  83. {
  84. string strItem = "";
  85. foreach(var item in us )
  86. {
  87. strItem += item.strName + ":" + item.strPsd + ":" + item.intAge + ":" + item.intTel + ":" + item.strAddr + "<br/>";
  88. }
  89. return strItem;
  90. }
  91. }
  92. /// <summary>
  93. /// 用户实体类
  94. /// </summary>
  95. public class UserInfo
  96. {
  97. //用户名
  98. public string strName { get; set; }
  99. //年龄
  100. public int intAge { get; set; }
  101. //密码
  102. public string strPsd { get; set; }
  103. //电话号码
  104. public int intTel { get; set; }
  105. //地址
  106. public string strAddr { get; set; }
  107. ////构造函数进行初始化
  108. //public UserInfo()
  109. //{
  110. //    strName = "";
  111. //    intAge = 0;
  112. //    strPsd = "";
  113. //    intTel = 0;
  114. //    strAddr = "";
  115. //}
  116. ///// <summary>
  117. ///// 用户名
  118. ///// </summary>
  119. //public string strNameInfo
  120. //{
  121. //    set { strName = value; }
  122. //    get { return strName; }
  123. //}
  124. ///// <summary>
  125. ///// 年龄
  126. ///// </summary>
  127. //public int intAgeInfo
  128. //{
  129. //    set { intAge = value; }
  130. //    get { return intAge; }
  131. //}
  132. ///// <summary>
  133. ///// 密码
  134. ///// </summary>
  135. //public string strPasswordInfo
  136. //{
  137. //    set { strPsd = value; }
  138. //    get { return strPsd; }
  139. //}
  140. ///// <summary>
  141. ///// 电话号码
  142. ///// </summary>
  143. //public int intTelInfo
  144. //{
  145. //    set { intTel = value; }
  146. //    get { return intTel; }
  147. //}
  148. ///// <summary>
  149. ///// 地址
  150. ///// </summary>
  151. //public string strAddrInfo
  152. //{
  153. //    set { strAddr = value; }
  154. //    get { return strAddr; }
  155. //}
  156. }
  157. /// <summary>
  158. /// 将json数据转换成实体类(方法二)
  159. /// </summary>
  160. public static class JsonInfo
  161. {
  162. /// <summary>
  163. /// 获取将实体类转换为json数据(目的是为了更快在网页上传递数据)
  164. /// </summary>
  165. /// <returns></returns>
  166. public static string getJsonInfo()
  167. {
  168. UserInfo userInfo = new UserInfo();
  169. userInfo.strName = "张三";
  170. userInfo.intAge = 23;
  171. userInfo.strPsd = "yhx.123";
  172. userInfo.intTel = 2324;
  173. userInfo.strAddr = "北京市";
  174. //将对象序列化json
  175. DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UserInfo));
  176. //创建存储区为内存流
  177. System.IO.MemoryStream ms = new MemoryStream();
  178. //将json字符串写入内存流中
  179. serializer.WriteObject(ms, userInfo);
  180. System.IO.StreamReader reader = new StreamReader(ms);
  181. ms.Position = 0;
  182. string strRes = reader.ReadToEnd();
  183. reader.Close();
  184. ms.Close();
  185. return strRes;
  186. }
  187. /// <summary>
  188. ///
  189. /// </summary>
  190. /// <returns></returns>
  191. public static string getInfo()
  192. {
  193. string JsonStr = "["+getJsonInfo()+"]";
  194. List<UserInfo> products;
  195. products = JsonInfo.JSONStringToList<UserInfo>(JsonStr);
  196. string strItem = "";
  197. foreach (var item in products)
  198. {
  199. strItem += item.strName + ":" + item.strPsd + ":" + item.intAge + ":" + item.intTel + ":" + item.strAddr + "<br/>";
  200. }
  201. return strItem;
  202. }
  203. /// <summary>
  204. /// 返回List集合对象
  205. /// </summary>
  206. /// <typeparam name="T"></typeparam>
  207. /// <param name="JsonStr"></param>
  208. /// <returns></returns>
  209. public static List<T> JSONStringToList<T>(this string JsonStr)
  210. {
  211. JavaScriptSerializer Serializer = new JavaScriptSerializer();
  212. List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
  213. return objs;
  214. }
  215. /// <summary>
  216. ///
  217. /// </summary>
  218. /// <typeparam name="T"></typeparam>
  219. /// <param name="json"></param>
  220. /// <returns></returns>
  221. public static T Deserialize<T>(string json)
  222. {
  223. T obj = Activator.CreateInstance<T>();
  224. using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
  225. {
  226. DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
  227. return (T)serializer.ReadObject(ms);
  228. }
  229. }
  230. }
  231. }

【转】C#中将JSon数据转换成实体类,将实体类转换成Json的更多相关文章

  1. 转换成json字符串,与json字符串转换成java类型都要先转换成json对象

    转换成json字符串,与json字符串转换成java类型都要先转换成json对象

  2. WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片

    原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片 1.图片文件转换成Visual对象 private Visual CreateVisual(string imag ...

  3. 将java类的泛型集合转换成json对象

    一般用extjs开发传输都是用json比较多,这个将来大家也许会用到... ConvertJsonUtils.java package com.sunweb.util.jsonfactory; imp ...

  4. Java对象转换成xml对象和Java对象转换成JSON对象

    1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...

  5. xml转换为json格式时,如何将指定节点转换成数组 Json.NET

    使用Json.NET转换xml成json时,如果xml只有单个节点,但json要求是数组形式[], JsonConvert.SerializeXmlNode 并不能自动识别 示例如下: RecordA ...

  6. 泛型(二)封装工具类CommonUtils-把一个Map转换成指定类型的javabean对象

    1.commons-beanutils的使用 commons-beanutils-1.9.3.jar 依赖 commons-logging-1.2.jar 代码1: String className ...

  7. 将一个字符串中的大写字母转换成小写字母,小写字母转换成大写字母(java)

    背景:刚刚学到java的String和StringBuffer类,遇到如标题所示的题. 要求:必须要用到String类的toUpperCase方法和toLowerCase方法 思路:用到StringB ...

  8. 【tp5】索引数组转成关联数组 ( $a=[],转换成 $a['aa'=>2,'bb'=>'3c'] )

    概念: 索引数组 ==== >>>$arr = []; 关联数组 ====>>> $arr = [ 'orange'=>1,'apple'=>'good ...

  9. json.net xml转换为json格式时,如何将指定节点转换成数组

    using System.Xml.Linq; using Newtonsoft.Json; Response.ContentType = "application/json"; X ...

  10. C#帮助类:将List转换成Datatable

    public class ListToDatatable { public static DataTable ToDataTable <T> (List <T> items) ...

随机推荐

  1. Python 中的@修饰符作用

    在Python 2.4以上的的函数中偶尔会看到函数定义的上一行有@functionName的修饰,这一下这个语法细节,其实这有点像C语言带参数的宏操作,解释器读到这样的修饰之后,会先解析@后的内容,直 ...

  2. selenium+testng+ant+jenkins 手记

    会不会搭建测试平台是一般测试工程师和高级测试工程师分水岭 ----tobecrazy 我们项目有现成的测试平台,使用的是selenium grid+testng+ant+jenkins+VM 但是我平 ...

  3. 利用委托与Lambada创建和调用webapi接口

    前言 现在项目中用的是webapi,其中有以下问题:    1.接口随着开发的增多逐渐增加相当庞大. 2.接口调用时不好管理. 以上是主要问题,对此就衍生了一个想法: 如果每一个接口都一个配置文件来管 ...

  4. 利用stack结构,将中缀表达式转换为后缀表达式并求值的算法实现

    #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...

  5. redis数据类型之—Set

    (1)set 简单介绍 set集合的数据是不重复的.无序的,一个集合类型键可以存储至多2^32-1 个字符串. (2)set 常用命令

  6. 数字转IP地址函数

    --------------------------------------------------------------------- -- Author : htl258(Tony) -- Da ...

  7. JAVE not work in linux

    1, it will print out exception, but still can convert the audio 2, it works in windows not linux, ne ...

  8. Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  9. 【Oracle】oracle中快速判断某一日期是闰年或平年

    )),' then '平年' else '闰年' end as isLeapYear from dual 第一步:取日期的年初日期:第二步:年初日期增加一个月即概念2月:第三步:取概念2月的最后一天的 ...

  10. Dijkstra算法初步 - 迷宫问题

    你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间.游戏规定了 ...