`

C#中将JSon数据转换成实体类,将实体类转换成Json

阅读更多
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#实体类工具"是一个实用程序,它可以帮助开发者快速将符合JSON规范的数据结构转换为C#源代码,生成对应的实体类文件。这种工具极大地提高了开发效率,特别是处理API响应或从JSON文件加载数据时。 要...

    C# 转换实体类为Json字符串

    实体类转换成 JSON 字符串,将datatable转换为json,DataTable转换实体类

    C# JSON实体类生成工具

    C# JSON实体类生成工具是一种高效实用的辅助开发软件,主要针对C#程序员设计,能够极大地简化处理JSON数据的工作流程。在C#编程环境中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,广泛应用于...

    Json转换成C#实体类工具

    总结来说,"Json转换成C#实体类工具"是提升C#开发效率的利器,它简化了JSON数据与C#对象间的转换过程,使得开发者能更加专注于业务逻辑的实现,而非基础数据结构的构建。在实际开发中,它可以帮助我们快速地处理和...

    json转换c#实体类代码

    JSON(JavaScript Object ...总的来说,"json转换c#实体类代码"这个工具对于处理JSON数据的C#开发者来说是一个实用的助手,它可以快速将JSON数据模型化为易于理解和操作的C#类,从而提高开发效率并减少错误的可能性。

    C# JSON通用转换类

    3. List转换成Json 4. 对象转换为Json 5. 对象集合转换Json 6. 普通集合转换Json 7. DataSet转换为Json 8. Datatable转换为Json 9. DataReader转换为Json 10. 解析JSON字符串生成对象实体 11. 解析JSON数组生成对象...

    C#实现将json转换为DataTable的方法

    在C#编程中,有时我们需要将JSON数据转换成DataTable对象,以便在.NET环境中方便地处理数据,例如在ASP.NET或Windows应用程序中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写...

    C#的json数据格式转化

    1. 使用DataContractJsonSerializer类:该类是C#语言中用于JSON数据格式转换的主要类,该类可以将对象转换为JSON格式的数据。例如,使用GetJSON方法可以将对象转换为JSON格式的数据。 2. 使用JavaScriptSerializer类...

    C# 解析json格式数据为IList

    在C#编程中,处理JSON...总之,C#通过Json.NET库提供了强大的JSON解析功能,可以方便地将JSON数据转换为IList类型,无论T是简单的基础类型还是复杂的自定义类。理解这个过程对于处理现代Web应用中的数据交换至关重要。

    C#实现json格式转换成对象并更换key的方法

    本篇文章将深入探讨如何将JSON格式的数据转换为C#对象,并在转换过程中替换键(key)的方法。首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于...

    C#处理json数据

    首先,需要定义一个与JSON数据结构匹配的类,然后使用`JsonConvert.DeserializeObject()`方法将JSON字符串转换为该类的实例。 ```csharp using Newtonsoft.Json; using System.Xml.Serialization; [Serializable] ...

    C#解析Json数据(.html)

    1. 字符串解析:当你有一个包含JSON格式的字符串时,可以使用`JsonConvert.DeserializeObject&lt;T&gt;`方法将其转换为C#对象。例如: ```csharp string jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New ...

    C#JSON转换实体类实例

    这些文件可能包含了演示如何在Windows Forms应用程序中使用Newtonsoft.Json进行JSON与实体类转换的代码示例。打开并运行这些文件,你将看到具体的实现步骤和上下文。 总之,通过使用Newtonsoft.Json库,开发者可以...

    C# json格式解析,Json格式字符串与C#对象相互转换,类库+使用案例,注释详细

    C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...

    C#实现实体类与字符串互相转换的方法

    本文实例讲述了C#实现实体类与字符串互相转换的方法。分享给大家供大家参考。具体实现方法如下: using System; using System.Collections.Generic; using System.Text; namespace PackDLL.Data.ConvertData { ///...

    C#将json格式转换成DataTable实例

    在.NET开发环境中,C#语言提供了丰富的库和方法来处理数据操作,其中之一就是将JSON格式的数据转换为DataTable对象。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和前后端交互...

    Json格式转换c# C#分解Json数据 源码 asp.net Json格式数据

    本程序主要实现c#分解json格式的数据, 先把标准的json数据分解出来填充到DataTable中,再绑定到页面控件上实现显示的效果 json是一种标准格式数据,在开发中经常会用到,所以把这段源码 给大家分享出来,希望能对...

    json转换成实体类工具(优化版)

    在Java、C#、VB和TypeScript这四种编程语言中,将JSON转换为实体类是常见的操作。这个"json转换实体类工具(优化版)"很可能提供了一个高效且便捷的方法,帮助开发者快速将接收到的JSON字符串映射到对应的类实例,...

Global site tag (gtag.js) - Google Analytics