.net中解析json 之 DataContractJsonSerializer类

ICNN实现入侵检测的思路与源码(CIC-IDS-2017) 基于ICNN实现入侵检测,可用于现实网络 阅读详情

来自:http://blog.youkuaiyun.com/xylinzai_xy/article/details/5907610

json 是轻量级的文本传输格式,一般用于前台和后台的数据交换

DataContractJsonSerializer是fm3.5中专门对json序列化和反序列化的类,以下是DataContractJsonSerializer的简单应用

 

假设客户端有个json对象,通过ajax传到后台,后台解析

 

代码如下:

[c-sharp]  view plain copy
  1. var people = [{ "UserName": "t1", "PassWord": "111111", "Sex": "男" },{ "UserName": "t2", "PassWord": "222222", "Sex": "女" }];  
  2. var url = "Default.aspx?people=" + escape(people.toJSONString());  
  3. request.open("POST", url, true);  
  4. request.onreadystatechange = updatePage;  
  5. request.send(null);  

toJSONString函数正常运行得引用json.js

   <script src="json.js" type="text/javascript"></script>

 

后台代码:

新建测试类 testobj (testobj中的属性和客户端传递过来的一致)

[c-sharp]  view plain copy
  1. [DataContract]//序列化  
  2. public class TestObj  
  3. {  
  4.     [DataMember]  
  5.     public string UserName { get; set; }  
  6.      [DataMember]  
  7.     public string PassWord { get; set; }  
  8.      [DataMember]  
  9.     public string Sex { get; set; }  
  10.   
  11.   
  12. public TestObj(string u,string p,string s)  
  13.     {  
  14.         UserName = u;  
  15.         PassWord = p;  
  16.         Sex = s;  
  17.     }  
  18. }  

新建序列化和反序列化方法

[c-sharp]  view plain copy
  1. //json 序列化  
  2.   
  3.     public static string ToJsJson(object item)  
  4.     {  
  5.         DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType());  
  6.         using(MemoryStream ms=new MemoryStream())  
  7.         {  
  8.             serializer.WriteObject(ms, item);  
  9.             StringBuilder sb = new StringBuilder();  
  10.             sb.Append(Encoding.UTF8.GetString(ms.ToArray()));  
  11.             return sb.ToString();  
  12.         }  
  13.     }  
  14.   
  15.     //反序列化  
  16.   
  17.     public static T FromJsonTo<T>(string jsonString)  
  18.     {  
  19.         DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));  
  20.         using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))  
  21.         {  
  22.             T jsonObject = (T)ser.ReadObject(ms);  
  23.             return jsonObject;  
  24.         }  
  25.     }  

 

调用:

反序列化json(解析)注:people即客户端传递过来

[c-sharp]  view plain copy
  1. //获取json字符串  
  2.        string jsonStr = Request["people"];  
  3.        List<TestObj> obj = Json.FromJsonTo<List<TestObj>>(jsonStr);  
  4.        foreach (TestObj item in obj)  
  5.            {  
  6.         Response.Write(string.Format("UserName:{0},Password:{1},Sex:{2}/r/n", item.UserName, item.PassWord, item.Sex));  
  7.            }  
  8.        Response.End();  

 

序列化成json字符串

[c-sharp]  view plain copy
  1. List<TestObj> Users = new List<TestObj>();  
  2. Users.Add(new TestObj("t1", "1", "男"));  
  3. Users.Add(new TestObj("t2", "2", "女"));  
  4. string json = Json.ToJsJson(Users);  
  5. Response.Write(json);  
  6. Response.End();  

 

前台获取后台返回的json字符串:

 

[c-sharp]  view plain copy
  1. function updatePage() {  
  2.           if (request.readyState == 4) {  
  3.               if (request.status == 200) {  
  4.                   var response = request.responseText;  
  5.                   //转化成对象  
  6.                   //方法1  
  7.                       response = response.parseJSON();  
  8.                   //方法2  
  9.                   // response = eval("(" + response + ")");  
  10.                   //对象访问方式  
  11.                   document.getElementById("d1").innerHTML = response[1].Sex;  
  12.                   //直接输出  
  13.                  // document.getElementById("d1").innerHTML = response;  
  14.               }  
  15.           }  
  16.       }  



基于STM32设计的温室大棚种植监测系统(onenet+GPRS通信) 当前所设计的温室大棚种植监测系统基于STM32单片机开发,它能够对温室大棚内的温度、湿度、光照强度、土壤湿度、二氧化碳含量等环境参数进行实时监测,并将数据传输至OneNET云平台,实现了远程监测和管理。该系统具有体积小、功耗低、可靠性高等特点,适合在温室大棚等场合使用。 阅读详情

相关推荐

GD32H7 SPI驱动实战:手把手教你用SPI3连接外部Flash(W25Q128)并实现读写

本文详细介绍了基于GD32H7系列MCU的SPI3接口驱动W25Q128外部Flash的全流程开发指南。从硬件设计、引脚配置到SPI3外设深度配置,再到底层通信函数实现和高级功能优化,提供了完整的解决方案。特别针对高速读取、DMA传输和信号完整性等关键环节进行了优化,确保系统在-40℃~85℃范围内稳定工作。

weixin_28729205的博客 380

C#使用DataContractJsonSerializer来进行JSON解析

在使用DataContractJsonSerializer进行解析之前,我们首先需要将两个包引入进来: using System.Runtime.Serialization; using System.Runtime.Serialization.Json; 接下来需要新建一个class,DataContractJsonSerializer可以将JSON字符串转化为指定的class或者将class转化为JSON字符串。 这次我接受的JSON数据格式为: { "ret": "0", "Isupdate"

u011555996的博客 4284

微信内置浏览器抓包全攻略:从ADB配置到Chrome调试(附常见问题解决)

本文提供了一套完整的微信内置浏览器抓包与调试解决方案。从ADB工具的深度配置与稳定性连接开始,详细讲解了如何开启X5内核调试开关,并利用Chrome DevTools建立远程连接。文章重点剖析了Network面板进行网络请求抓取、性能分析和问题定位的实战技巧,并附带了设备连接失败、无网络请求等常见问题的排查指南,帮助开发者高效解决微信H5页面调试难题。

gitlab7runner的博客 543

Newtonsoft.Json高级用法

  手机端应用讲究速度快,体验好。刚好手头上的一个项目服务端接口有性能问题,需要进行优化。在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数据,经过分析一个简单的列表接口每一行数据返回了16个字段,但是手机APP端只用到了其中7个字段,剩余9个字段的数据全部都是多余的,如果接口返回数据为40K大小,也就是说大约20K的数据为无效数...

weixin_33805992的博客 724

ESP32+ST7789 LCD屏实战:5分钟搞定中文显示与图片渲染(附完整代码)

本文提供了一份详细的ESP32驱动ST7789 LCD屏幕的实战指南。通过清晰的SPI硬件连接说明、ESP-IDF框架下的初始化代码,以及图片渲染与中文字库构建的核心算法,帮助开发者快速实现中文显示与图片渲染功能,并附有完整的代码示例和性能优化技巧。

weixin_29189377的博客 438

PX4无人机-Gazebo仿真实现动态目标追踪的视觉控制方案

本文详细介绍了PX4无人机在Gazebo仿真环境中实现动态目标追踪的视觉控制方案。从PX4与Gazebo仿真环境搭建、动态目标追踪核心技术栈、仿真环境深度定制技巧到追踪算法的优化实践,提供了全面的技术指导和常见问题排查方法,帮助开发者高效实现无人机视觉追踪功能。

weixin_29196315的博客 450

DataContractJsonSerializer类

DataContractJsonSerializer类   DataContractJsonSerializer类同样是提供JSON序列化的类。而且貌似有几个方法还和XML有点点关系。   注意用此类要引用System.ServiceModel.Web.dll与System.Runtime.Serialization.dll   1、属性   DataContractSurroga...

weixin_33830216的博客 330

高杂合度基因组组装实战:Hifiasm参数调优与purge_dups过滤效果对比(附猪毛菜案例)

本文深入探讨了高杂合度基因组组装中Hifiasm参数调优与purge_dups过滤的实战效果对比,通过猪毛菜案例详细解析了两种方法的适用场景与优化策略。文章重点分析了purge_dups在contig过滤中的显著效果,为基因组组装提供了关键的技术参考。

weixin_29232121的博客 495

使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象 ...

一、JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。 JSON是“名值对”的集合。结构由大括号'{}',中括号'[]',逗号',',冒号':',双引号'“”'组成,包含的数据类型有Object,Number,Boolean,String,Array, NULL等。 JSO...

weixin_30826761的博客 322

SAP FICO - 外币交易实战:汇率类型配置与货币换算率管理

月底关账前的外币评估就像财务人的"期末考",OB59配置就是你的备考方案。最低值原则(Lowest value principle)最保守。它会比较原始汇率与评估日汇率,取不利方向确认损失。适合风险厌恶型企业,我在制造业客户中应用最多。重估法(Revalue only)更反映市场现状。无论盈亏都按最新汇率调整,适合交易性金融资产处理。有个基金公司客户就靠这个方法及时反映了外汇波动收益。最小差异金额(Minimum difference)是防骚扰设置。

weixin_42524708的博客 358

FOC电机控制中电流采样延迟补偿的原理和方法

摘要: FOC电机控制中,电流采样、计算与PWM更新存在固有延迟(约1.5个PWM周期),导致相位滞后,限制电流环带宽。主流补偿方法包括: 一阶前向预测法:基于历史电流值预测未来电流,抵消延迟,工程应用广泛; 相位超前补偿:通过s/z域校正器设计实现等效预测; 状态观测器法(如龙伯格观测器):通过电机模型闭环估计状态,兼具噪声抑制和参数辨识能力,但复杂度高。实际需注意参数敏感性、离散化精度及延迟时间校准,避免过补偿风险。一阶预测法因平衡效果与复杂度成为工业首选。

jifengzhiling的博客 2232

C# DataContractJsonSerializer

DataContractJsonSerializer dataSerializer = new DataContractJsonSerializer(request.getBizContentClass()); MemoryStream msObj = new MemoryStream(); ...

1033

【PX4学习笔记】1. ROS及PX4环境搭建

环境 Ubuntu18.04 安装教程参考 https://www.guyuehome.com/8983 安装过程中问题的解决 问题1 rosdep init 错误的终极解决方法 注意etc/下的ros和rostep文件夹要自己建 问题2 Ubuntu安装ROS报错 sudo: rosdep:找不到命令 问题3(更好地解决了问题1、2)【推荐】 解决GitHub的raw.githubusercontent.com无法连接问题 问题4:GeographicLib的安装 教程中安装GeographicLib d

【人工智障 | 计算鸡视觉 | 机器孩】 8232

在.Net C#中如何解析json数据(DataContractJsonSerializer类)

json 是一种轻量级的文本传输格式,在AJAX架构的WEB应用中,用于前台和后台的数据交换格式非常简洁方便,下面就如何使用结合一个实例加以说明: DataContractJsonSerializer是.Net框架3.5版中用于实现对json序列化(即json对象->json文本)和反序列化(json文本->json对象)的类,以下是DataContractJsonSerial...

weixin_30263277的博客 283

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WP8解析JSON格式(使用DataContractJsonSerializer类)(推荐)

DataContractJsonSerializer是.NET自带的类,在解析JSON格式的时候使用起来方便快捷,至于生成方面由于暂时没用到就没去看了。使用需要引用System.Runtime.Serialization。 在知道需要解析JSON格式的情况下,根据JSON格式构建一个类,而后使用DataContractJsonSerializer读取JSON文本,即完成解析。同时使用J...

aowu6883的博客 166

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

国产双通道14位2.6GSPS ADC替换AD9689:卫星通信地面站接收机设计实战

模数转换器(ADC)是模拟信号与数字处理系统的核心接口,其采样率、分辨率与动态范围直接决定接收机性能。在卫星通信地面站中,高速ADC需在强干扰环境下精确数字化微弱中频信号,JESD204B串行接口则实现高可靠数据回传。国产双通道14位2.6GSPS ADC在采样率、分辨率及接口协议上对标AD9689,可显著降低硬件改板与FPGA链路重构成本。围绕电源噪声抑制、时钟抖动控制、JESD204B同步调试等工程实践,该方案适用于卫星通信地面站、相控阵接收及宽带频谱监测等场景,为高速ADC国产化替换提供完整设计参考。

weixin_34220179的博客 4461

C#解析json文件的方法

C#解析json文件的方法 C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。 JSON与XML的比较 ◆可读性   JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解。 ◆文件大小与传输   XML允许使用方便

haofeng2356的博客 979

.NET下解析Json的方法

.NET下几种常见的解析JSON方法 主要类命名空间限制内建LINQ支持 DataContractJsonSerializer System.Runtime.Serialization.Json 通用 否 JavaScriptSerializer System.Web.Script.Serialization 只能在Web环境使用 否 Js...

weixin_30328063的博客 221

C# 实现json解析

c#解析json文件的方法   JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。 JSON与XML的比较 ◆可读性   JSON和XML的可读性

u010561856的专栏 821

C# 解析 json

  JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。 JSON与XML的比较◆可读性  JSON和XML的可读性相比较而言,由...

weixin_30528371的博客 97

Model 和 JSON 间互相转换

在.net 4.0 下可以使用: //usingSystem.Runtime.Serialization.Json;<summary>解析JSON,仿Javascript风格</summary>publicstaticclassJSON{publicstaticTparse&lt...

weixin_30682415的博客 151

vb.net 教程 4-11 Json文件操作 1

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 json格式作为轻量级数据交换格式,在网页上也得到大量应用。json与xml格式各有优缺点,本教程中不做讨论,有兴趣的朋友请在网上自行搜索。 目前vb.net中支持解析json的类有两个:JavaScriptSerializer和DataContractJsonSerializer 在vs2005下通过引用system.web.extensions.dll(3.5)才能使用以上两个类。 顺便说一下的是

chinaherolts2008的博客 1214

c# 解析JSON的几种办法

.NET下几种常见的解析JSON方法 主要类命名空间限制内建LINQ支持 DataContractJsonSerializer System.Runtime.Serialization.Json 通用 否 JavaScriptSerializer System.Web.Script.Serialization 只能在Web环境使用 否 ...

weixin_30678349的博客 76

JSON.NET

C#解析json文件的方法 C# 解析 json   JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。 JSON...

weixin_30498807的博客 85
上一篇: jSonDemo
下一篇: 网络舆情监测网站
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值