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数据转换C#实体类工具"是一个实用程序,它可以帮助开发者快速将符合JSON规范的数据结构转换为C#源代码,生成对应的实体类文件。这种工具极大地提高了开发效率,特别是处理API响应或从JSON文件加载数据时。 要...
实体类转换成 JSON 字符串,将datatable转换为json,DataTable转换实体类
C# JSON实体类生成工具是一种高效实用的辅助开发软件,主要针对C#程序员设计,能够极大地简化处理JSON数据的工作流程。在C#编程环境中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,广泛应用于...
总结来说,"Json转换成C#实体类工具"是提升C#开发效率的利器,它简化了JSON数据与C#对象间的转换过程,使得开发者能更加专注于业务逻辑的实现,而非基础数据结构的构建。在实际开发中,它可以帮助我们快速地处理和...
JSON(JavaScript Object ...总的来说,"json转换c#实体类代码"这个工具对于处理JSON数据的C#开发者来说是一个实用的助手,它可以快速将JSON数据模型化为易于理解和操作的C#类,从而提高开发效率并减少错误的可能性。
3. List转换成Json 4. 对象转换为Json 5. 对象集合转换Json 6. 普通集合转换Json 7. DataSet转换为Json 8. Datatable转换为Json 9. DataReader转换为Json 10. 解析JSON字符串生成对象实体 11. 解析JSON数组生成对象...
1. 使用DataContractJsonSerializer类:该类是C#语言中用于JSON数据格式转换的主要类,该类可以将对象转换为JSON格式的数据。例如,使用GetJSON方法可以将对象转换为JSON格式的数据。 2. 使用JavaScriptSerializer类...
在C#编程中,处理JSON...总之,C#通过Json.NET库提供了强大的JSON解析功能,可以方便地将JSON数据转换为IList类型,无论T是简单的基础类型还是复杂的自定义类。理解这个过程对于处理现代Web应用中的数据交换至关重要。
本篇文章将深入探讨如何将JSON格式的数据转换为C#对象,并在转换过程中替换键(key)的方法。首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于...
首先,需要定义一个与JSON数据结构匹配的类,然后使用`JsonConvert.DeserializeObject()`方法将JSON字符串转换为该类的实例。 ```csharp using Newtonsoft.Json; using System.Xml.Serialization; [Serializable] ...
本文实例讲述了C#实现实体类与字符串互相转换的方法。分享给大家供大家参考。具体实现方法如下: using System; using System.Collections.Generic; using System.Text; namespace PackDLL.Data.ConvertData { ///...
1. 字符串解析:当你有一个包含JSON格式的字符串时,可以使用`JsonConvert.DeserializeObject<T>`方法将其转换为C#对象。例如: ```csharp string jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New ...
这些文件可能包含了演示如何在Windows Forms应用程序中使用Newtonsoft.Json进行JSON与实体类转换的代码示例。打开并运行这些文件,你将看到具体的实现步骤和上下文。 总之,通过使用Newtonsoft.Json库,开发者可以...
C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...
在.NET开发环境中,C#语言提供了丰富的库和方法来处理数据操作,其中之一就是将JSON格式的数据转换为DataTable对象。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和前后端交互...
本程序主要实现c#分解json格式的数据, 先把标准的json数据分解出来填充到DataTable中,再绑定到页面控件上实现显示的效果 json是一种标准格式数据,在开发中经常会用到,所以把这段源码 给大家分享出来,希望能对...
标题中的“Json转实体类”指的是在编程过程中,将JSON格式的数据转换为C#语言中的对象或实体类。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,而实体类是C#中表示业务数据的...
序列化是将C#对象转换成JSON字符串的过程。在Json.NET中,可以使用`JsonConvert.SerializeObject()`方法实现。例如: ```csharp var myObject = new { Name = "John", Age = 30 }; string jsonString = ...