• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > Json序列化和反序列化方法解析

Json序列化和反序列化方法解析

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了Json,序列化,反序列化等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

            DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType());

            using (MemoryStream ms = new MemoryStream())
            {

                serializer.WriteObject(ms, item);

                StringBuilder sb = new StringBuilder();

                sb.Append(Encoding.UTF8.GetString(ms.ToArray()));

                return sb.ToString();

            }

        }

        /// <summary>
        /// Json反序列化,用于接收客户端Json后生成对应的对象
        /// </summary>
        public static T FromJsonTo<T>(this string jsonString)
        {

            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));

            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));

            T jsonObject = (T)ser.ReadObject(ms);

            ms.Close();

            return jsonObject;

        }

实体类

javascript调用测试代码

                        alert(result.make);
                        alert(result.model);
                        alert(result.year);
                        alert(result.color);
                    }

                });
            });

C#后台生成代码

            obj.make = "Make is Value";
            obj.model = "Model is Value";
            obj.year = 999;
            obj.color = "Color is Value";

            context.Response.Write(obj.ToJsJson());
        }
 public bool IsReusable
        {
            get
            {
                return false;
            }
        }
}

//返回值为 {"color":"Color is Value","make":"Make is Value","model":"Model is Value","year":999}

-----------------C#由Json生成对象-----------------------

javascript调用测试代码

                var m_obj = { make: "Dodge", model: "Coronet R/T", year: 1968, color: "yellow" };
                var jsonStr = JSON.stringify(m_obj); //用Json2.js生成Json字符串

                $.ajax({
                    url: "postJsonHandler.ashx",
                    type: 'POST',
                    data: { postjson: jsonStr },
                    dataType: 'json',
                    timeout: 1000,
                    error: function(XMLHttpRequest, textStatus, errorThrown) { alert(textStatus) },
                    success: function(result) {

                        alert(result.success);
                    }

                });
});

C#后台生成代码

            TestObj obj = jsonStr.FromJsonTo<TestObj>();

            if (string.IsNullOrEmpty(obj.make) || string.IsNullOrEmpty(obj.model) || string.IsNullOrEmpty(obj.color)

|| obj.year < 0)
            {
                context.Response.Write("{success:false}");
            }
            else
            {
                context.Response.Write("{success:true}");
            }

public bool IsReusable
        {
            get
            {
                return false;
            }
        }
}

使用Json时需要注意,服务器端拼凑生成Json字符串时,一定要注意把字符串用\"\"包裹,不然客户端接收时肯定会报错,根据Json字符串生成对象,是根据对应的名称赋值,多于或少于都不会报错.

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • jQuery实现可编辑表格并生成json结果(实例代码)
  • 关于jQuery.ajax()的jsonp碰上post详解
  • jQuery Jsonp跨域模拟搜索引擎
  • jQuery序列化后的表单值转换成Json
  • jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
  • jQuery使用JSONP实现跨域获取数据的三种方法详解
  • 利用jQuery解析获取JSON数据
  • jQuery Ajax前后端使用JSON进行交互示例
  • jquery拼接ajax 的json和字符串拼接的方法
  • 浅谈jQuery中的$.extend方法来扩展JSON对象

相关文章

  • JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
  • Jquery Easyui对话框组件Dialog使用详解(14)
  • jQuery实现页面评论栏中访客信息自动填写功能的方法
  • JQuery标签页效果的两个实例讲解(4)
  • jquery+css实现简单的图片轮播效果
  • jquery ajax方式直接提交整个表单核心代码
  • 使用jquery获取url以及jquery获取url参数的实现方法
  • 利用JQuery阻止事件冒泡
  • JQuery 传送中文乱码问题的简单解决办法
  • jQuery实现的自定义弹出层效果实例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Get中文乱码IE浏览器Get中文乱码解决方案
    • 读jQuery之十 事件模块概述
    • jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
    • jquery多浏览器捕捉回车事件代码
    • jQuery使用之设置元素样式用法实例
    • Struts2的s:radio标签使用及用jquery添加change事件
    • 使用jQuery实现验证上传图片的格式与大小
    • 基于JQuery 滑动与动画的说明介绍
    • jQuery实现contains方法不区分大小写的方法
    • jQuery EasyUI API 中文文档 - Pagination分页

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有