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);
}
}
}
}
分享到:
相关推荐
实体类转换成 JSON 字符串,将datatable转换为json,DataTable转换实体类
可以将json格式的数据转换成C#实体类文件的工具。json格式必须规范
Json转换成C#实体类工具,根据Json格式,自动转换成C#实体类,非常方便大家使用。
将json字符串转化成c#实体类代码;方便你编写复杂的实体类,一键自动生成
Newtonsoft.Json转换Json为实体类DEMO,小白专用,.net45版本 很久之前的 很古老的代码
该工具支持通过在软件界面输入或者粘贴JSON字符串,根据字符串生成C#编程开发使用的JSON实体类文件。
C#解析Json数据(.html),C#解析Json数据(.html)(网页链接)
本程序主要实现c#分解json格式的数据, 先把标准的json数据分解出来填充到DataTable中,再绑定到页面控件上实现显示的效果 json是一种标准格式数据,在开发中经常会用到,所以把这段源码 给大家分享出来,希望能对...
本文实例讲述了C#实现实体类与字符串互相转换的方法。分享给大家供大家参考。具体实现方法如下: using System; using System.Collections.Generic; using System.Text; namespace PackDLL.Data.ConvertData { ///...
3. List转换成Json 4. 对象转换为Json 5. 对象集合转换Json 6. 普通集合转换Json 7. DataSet转换为Json 8. Datatable转换为Json 9. DataReader转换为Json 10. 解析JSON字符串生成对象实体 11. 解析JSON数组生成对象...
C#接收Json格式数据,中文出现乱码解决方法
C# 解析json格式数据为IList<T>
C#的json数据转换, 转换对象为JSON格式数据,
C#中一些常用的对json格式数据的处理。
主要介绍了C#实现json格式转换成对象并更换key的方法,涉及C#操作json格式数据的相关技巧,需要的朋友可以参考下
C#的一个解析JSON的工具类,像java一样优雅的解析JSON数据,包含有JSONObject和JSONArray对象。 JSONObject json = new JSONObject(); json.Put("sex", "男"); json.Put("age", 123); json.Put("name", "张三"); ...
json转换实体类工具,支持Java、C#、VB和TypeScript语言
C#下支持一行代码将实体类转换为JSON字符串,https://blog.csdn.net/simoral/article/details/80625654