[asp.net]C#实现json的序列化和反序列化

简介: 在做asp.net和unity进行http通信的时候,当unity客户端发出表单请求的时候,我要将他要请求的数据以json的格式返回给客户端,让客户端来解析。服务器端这一块就涉及到json的序列化和反序列化的问题。

在做asp.net和unity进行http通信的时候,当unity客户端发出表单请求的时候,我要将他要请求的数据以json的格式返回给客户端,让客户端来解析。服务器端这一块就涉及到json的序列化和反序列化的问题。

接下来就来举个列子,当然包括两种方法(本篇参考自:http://www.csharpwin.com/csharpspace/10822r2908.shtml)

两种方法都有例子,第一种是用泛型集合来存储的对象,然后将集合序列化一下;第二种是直接序列化的一个对象

using System;
using System.Collections.Generic;
using System.Web.Script.Serialization;
using System.Configuration;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
using System.IO;
using System.Text;


namespace WebApplication1
{

    //方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化
    [Serializable]
    public class Person
    {
        
        private int id;
        /// <summary>
        /// id
        /// </summary>
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        private string name;
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    }

    //方法二:引入 System.Runtime.Serialization.Json命名空间使用 DataContractJsonSerializer类实现序列化
    //可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化,DataMember:定义序列化属性参数,使用DataMember属性标记字段必须使用DataContract标记类 否则DataMember标记不起作用。
    [DataContract]
    public class Person1
    {
        
        [IgnoreDataMember]
        public int Id { get; set; }

        [DataMember(Name = "name")]
        public string Name { get; set; }
        [DataMember(Name = "sex")]
        public string Sex { get; set; }

    }

    public partial class _Default : System.Web.UI.Page
    {
        string constr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            
            Person p1 = new Person();
            p1.Id = 1;
            p1.Name = "dxw";
            Person p2 = new Person();
            p2.Id = 2;
            p2.Name = "wn";

            List<Person> listperson = new List<Person>();
            listperson.Add(p1);
            listperson.Add(p2);

            JavaScriptSerializer js = new JavaScriptSerializer();
            //json序列化
            string s = js.Serialize(listperson);
            Response.Write(s);



            //方法二
            Person1 p11 = new Person1();
            p11.Id = 1;
            p11.Name = "hello";
            p11.Sex = "男";
            DataContractJsonSerializer json = new DataContractJsonSerializer(p11.GetType());

            string szJson = "";

            //序列化

            using (MemoryStream stream = new MemoryStream())

            {

                json.WriteObject(stream, p11);

                szJson = Encoding.UTF8.GetString(stream.ToArray());

                Response.Write(szJson);
            }

            //反序列化

            //using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))

            //{

            //    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People));

            //    Person1 _people = (Person1)serializer.ReadObject(ms);

            //}
         }
        


        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Write(constr);
        }


    }


输出的结果:



==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:858550         cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

转载请注明出处:http://blog.csdn.net/dingxiaowei2013/article/details/17240085

欢迎关注我的微博: http://weibo.com/u/2590571922


相关文章
|
JSON JavaScript 前端开发
ASP.NET 中JSON “.NET研究”的序列化和反序列化
  JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式。在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间、集合、字典的处理。
983 0
|
JSON .NET C#
ASP.NET CORE入门之读取Json配置文件
首先新建一.net core控制台项目,命名为jsonReader 然后选中引用,选择NuGet包管理器,点击浏览引入mircosoft.aspnetcore.all并安装 选中解决方案,填加,新建项目,添加Json文件,命名为test.
1431 0
|
Web App开发 JSON JavaScript
ASP输出JSON数据及客户端jQuery处理方法
首先ASP处理JSON需要json官方提供的JSON For ASP 封装类文件,下载地址:http://code.google.com/p/aspjson/downloads/list 下载最新的JSON_2.0.4.asp文件备用。
1038 0
|
XML JSON .NET
ASP.NET中XML转JSON的方法
原文:ASP.NET中XML转JSON的方法 许多应用程序都将数据存储为XML的格式,而且会将数据以JSON的格式发送到客户端以做进一步处理。要实现这一点,它们必须将XML格式转换为JSON格式。     XML转JSON代码   [csharp] view plaincopy ...
760 0
|
Web App开发 XML JSON
Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化
原文:Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web API中的JSON和XML格式化器。
1151 0
|
Web App开发 JavaScript 数据库
asp.net 中 Json、Jquery、Post简单使用
前台取得数据: //数据库中有 typeid 和 typename 字段 var json;$(document).ready(function () { //ready-start$.
1913 0
|
JSON .NET 数据格式
ASP.NET中把对象序列化成JSON字符串的三种方法
//方法1 //using System.Runtime.Serialization.Json; //using System.
833 0