【转】C#中将JSon数据转换成实体类,将实体类转换成Json
http://wo13145219.iteye.com/blog/2022667
http://json2csharp.chahuo.com/
- using System;
- using System.Collections;
- using System.Configuration;
- using System.Data;
- using System.Linq;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.HtmlControls;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Xml.Linq;
- using System.IO;
- using System.Text;
- using System.Runtime.Serialization.Json;
- using System.Collections.Generic;
- using System.Reflection;
- using System.Web.Script.Serialization;
- namespace AjaxTest
- {
- public partial class Json : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- //Response.Write(getJsonInfo());
- //string strReg = "\\\\";
- //strReg = strReg.Replace("\\\\", "\\");
- ////Response.Write(strReg);
- //方法一
- Response.Write(disJsonInfo(getObjectByJson(getJsonInfo()))); //方法二
- Response.Write(JsonInfo.getInfo());
- }
- /// <summary>
- /// 获取将实体类转换为json数据(目的是为了更快在网页上传递数据)
- /// </summary>
- /// <returns></returns>
- public string getJsonInfo()
- {
- UserInfo userInfo = new UserInfo();
- //userInfo.strNameInfo = "张三";
- //userInfo.intAgeInfo = 23;
- //userInfo.intTelInfo = 66666;
- //userInfo.strAddrInfo = "北京市";
- //userInfo.strPasswordInfo = "yhx.123";
- userInfo.strName = "张三";
- userInfo.intAge = 23;
- userInfo.strPsd = "yhx.123";
- userInfo.intTel = 2324;
- userInfo.strAddr = "北京市";
- //将对象序列化json
- DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UserInfo));
- //创建存储区为内存流
- System.IO.MemoryStream ms = new MemoryStream();
- //将json字符串写入内存流中
- serializer.WriteObject(ms, userInfo);
- System.IO.StreamReader reader = new StreamReader(ms);
- ms.Position = 0;
- string strRes = reader.ReadToEnd();
- reader.Close();
- ms.Close();
- return strRes;
- }
- /// <summary>
- /// 将json数据转换成实体类
- /// </summary>
- /// <returns></returns>
- private static List<UserInfo> getObjectByJson(string jsonString)
- {
- // 实例化DataContractJsonSerializer对象,需要待序列化的对象类型
- DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<UserInfo>));
- //把Json传入内存流中保存
- jsonString = "[" + jsonString + "]";
- MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
- // 使用ReadObject方法反序列化成对象
- object ob = serializer.ReadObject(stream);
- List<UserInfo> ls = (List<UserInfo>)ob;
- return ls;
- }
- /// <summary>
- /// 在页面上显示转换为实体类数据
- /// </summary>
- private string disJsonInfo(List<UserInfo> us)
- {
- string strItem = "";
- foreach(var item in us )
- {
- strItem += item.strName + ":" + item.strPsd + ":" + item.intAge + ":" + item.intTel + ":" + item.strAddr + "<br/>";
- }
- return strItem;
- }
- }
- /// <summary>
- /// 用户实体类
- /// </summary>
- public class UserInfo
- {
- //用户名
- public string strName { get; set; }
- //年龄
- public int intAge { get; set; }
- //密码
- public string strPsd { get; set; }
- //电话号码
- public int intTel { get; set; }
- //地址
- public string strAddr { get; set; }
- ////构造函数进行初始化
- //public UserInfo()
- //{
- // strName = "";
- // intAge = 0;
- // strPsd = "";
- // intTel = 0;
- // strAddr = "";
- //}
- ///// <summary>
- ///// 用户名
- ///// </summary>
- //public string strNameInfo
- //{
- // set { strName = value; }
- // get { return strName; }
- //}
- ///// <summary>
- ///// 年龄
- ///// </summary>
- //public int intAgeInfo
- //{
- // set { intAge = value; }
- // get { return intAge; }
- //}
- ///// <summary>
- ///// 密码
- ///// </summary>
- //public string strPasswordInfo
- //{
- // set { strPsd = value; }
- // get { return strPsd; }
- //}
- ///// <summary>
- ///// 电话号码
- ///// </summary>
- //public int intTelInfo
- //{
- // set { intTel = value; }
- // get { return intTel; }
- //}
- ///// <summary>
- ///// 地址
- ///// </summary>
- //public string strAddrInfo
- //{
- // set { strAddr = value; }
- // get { return strAddr; }
- //}
- }
- /// <summary>
- /// 将json数据转换成实体类(方法二)
- /// </summary>
- public static class JsonInfo
- {
- /// <summary>
- /// 获取将实体类转换为json数据(目的是为了更快在网页上传递数据)
- /// </summary>
- /// <returns></returns>
- public static string getJsonInfo()
- {
- UserInfo userInfo = new UserInfo();
- userInfo.strName = "张三";
- userInfo.intAge = 23;
- userInfo.strPsd = "yhx.123";
- userInfo.intTel = 2324;
- userInfo.strAddr = "北京市";
- //将对象序列化json
- DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UserInfo));
- //创建存储区为内存流
- System.IO.MemoryStream ms = new MemoryStream();
- //将json字符串写入内存流中
- serializer.WriteObject(ms, userInfo);
- System.IO.StreamReader reader = new StreamReader(ms);
- ms.Position = 0;
- string strRes = reader.ReadToEnd();
- reader.Close();
- ms.Close();
- return strRes;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public static string getInfo()
- {
- string JsonStr = "["+getJsonInfo()+"]";
- List<UserInfo> products;
- products = JsonInfo.JSONStringToList<UserInfo>(JsonStr);
- string strItem = "";
- foreach (var item in products)
- {
- strItem += item.strName + ":" + item.strPsd + ":" + item.intAge + ":" + item.intTel + ":" + item.strAddr + "<br/>";
- }
- return strItem;
- }
- /// <summary>
- /// 返回List集合对象
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="JsonStr"></param>
- /// <returns></returns>
- public static List<T> JSONStringToList<T>(this string JsonStr)
- {
- JavaScriptSerializer Serializer = new JavaScriptSerializer();
- List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
- return objs;
- }
- /// <summary>
- ///
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="json"></param>
- /// <returns></returns>
- public static T Deserialize<T>(string json)
- {
- T obj = Activator.CreateInstance<T>();
- using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
- {
- DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
- return (T)serializer.ReadObject(ms);
- }
- }
- }
- }
【转】C#中将JSon数据转换成实体类,将实体类转换成Json的更多相关文章
- 转换成json字符串,与json字符串转换成java类型都要先转换成json对象
转换成json字符串,与json字符串转换成java类型都要先转换成json对象
- WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片
原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片 1.图片文件转换成Visual对象 private Visual CreateVisual(string imag ...
- 将java类的泛型集合转换成json对象
一般用extjs开发传输都是用json比较多,这个将来大家也许会用到... ConvertJsonUtils.java package com.sunweb.util.jsonfactory; imp ...
- Java对象转换成xml对象和Java对象转换成JSON对象
1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...
- xml转换为json格式时,如何将指定节点转换成数组 Json.NET
使用Json.NET转换xml成json时,如果xml只有单个节点,但json要求是数组形式[], JsonConvert.SerializeXmlNode 并不能自动识别 示例如下: RecordA ...
- 泛型(二)封装工具类CommonUtils-把一个Map转换成指定类型的javabean对象
1.commons-beanutils的使用 commons-beanutils-1.9.3.jar 依赖 commons-logging-1.2.jar 代码1: String className ...
- 将一个字符串中的大写字母转换成小写字母,小写字母转换成大写字母(java)
背景:刚刚学到java的String和StringBuffer类,遇到如标题所示的题. 要求:必须要用到String类的toUpperCase方法和toLowerCase方法 思路:用到StringB ...
- 【tp5】索引数组转成关联数组 ( $a=[],转换成 $a['aa'=>2,'bb'=>'3c'] )
概念: 索引数组 ==== >>>$arr = []; 关联数组 ====>>> $arr = [ 'orange'=>1,'apple'=>'good ...
- json.net xml转换为json格式时,如何将指定节点转换成数组
using System.Xml.Linq; using Newtonsoft.Json; Response.ContentType = "application/json"; X ...
- C#帮助类:将List转换成Datatable
public class ListToDatatable { public static DataTable ToDataTable <T> (List <T> items) ...
随机推荐
- 解决ThinkPHP Call to a member function assign() on a non-object
<ignore_js_op> assign是tp模板输出变量的一个方法.没有object只能说没实例化...<ignore_js_op> 经过几番思索,终于发现了.原来是Act ...
- ServiceStack.Redis订阅发布服务的调用
1.Redis订阅发布介绍 Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式. 发布者和订阅者之间使用频 ...
- 「转」xtrabackup新版详细说明
声明:本文由我的同事@fiona514编写,是我看过的最用心的中文说明介绍,强烈推荐大家学习使用. Percona Xtrabackup 2.4.1 编译及软件依赖 centos5,6 需要升级cma ...
- SQLServer2008设置 开启远程连接
SQLServer2008设置 开启远程连接 前一段时间,学生分组做项目,使用SVN工具,要求功能使用存储过程,在数据库这块出现这么一个问题: A学生在他的数据库上添加了存储过程,需要其他的B,C,D ...
- October 18th, Week 43rd Tuesday, 2016
Live as if you were to die tomorrow. 将每一天都当作人生的最后一天来活. If I were to die tomorrow, I may choose to en ...
- C的数值取反操作
今儿在代码中发现一句"return x? ~0 : 0;"对~0这个取反操作相关的知识又还给老师了.一查,查到下面一道题,弄过来贴上. //-------------------- ...
- AngularJS 模块
模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. 你可以通过 AngularJS 的 angular.module 函数来创建模块: &l ...
- sqlserver 行列转换
http://www.cnblogs.com/zhangzt/archive/2010/07/29/1787825.html PIVOT用于将列值旋转为列名(即行转列),在SQL Server 200 ...
- Word2vec多线程(tensorflow)
workers = [] for _ in xrange(opts.concurrent_steps): t = threading.Thread(target=self._train_thread_ ...
- java调用sqlldr导入csv文件数据到临时表
package cn.com.file;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File; ...