如何在ASP.NET中用C#将XML转换成JSON

如何在ASP.NET中用C#将XML转换成JSON     本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用。或许你可以直接利用JavaScript代码通过Ajax的方式来读取XML,然后直接对其中的内容进行解析,这样或许更直接一些。但本文中给出的代码旨在说明如何通过原生的C#代码来完成这一转换。除此之外,你仍然可以借用一些第三方类库或者更高级一些的.NET库对象来实施转换。我们来看看这里介绍的一些较为简单的方法,但前提是你必须拥有可支持的类库和对象以备使用。 使用Json.NET类库 前提是需要首先下载和安装Json.NET类库,在这里可以找到http://json.codeplex.com/ 下面是一个例子:

  使用.NET Framework中的JavaScriptSerializer类 首先需要确保你的工程或服务器支持.NET 4.0或以上版本的Framework,否则无法找到该类。 下面是一个例子:

其输出结果为:{"key1":"True","key2":"Hello World","key3":"999"} 可能还会有更多的方法,这里不一一列出了。那么如何使用原生的C#代码将XML转换成JSON格式字符串呢?或者说该C#代码在较低版本的.NET Framework中也可以运行呢?来看看下面的介绍吧。 Introduction JSON是一个轻量级的数据交换格式,它可以非常容易地被页面的JavaScript编码为对象的形式,从而方便数据操作。 基于AJAX的页面使用XmlHttpRequest对象从服务端接收数据来响应用户的请求,当返回的数据是XML格式时,它可以被转换为JSON格式的字符串从而通过JavaScript更加容易地对数据进行处理。 许多应用程序都将数据存储为XML的格式,而且会将数据以JSON的格式发送到客户端以做进一步处理。要实现这一点,它们必须将XML格式转换为JSON格式。下面的ASP.NET C#代码实现了这一过程。 Code Description 代码中提供了一个方法XmlToJSON,可以用来将XmlDocument对象转换为JSON字符串。代码通过迭代每一个XML节点、属性以及子节点,来创建对应的JSON对象。 代码不会生成数字和布尔类型的值 Xml DocumentElement对象始终会被转换为JSON对象的member:object,它遵循下面这些规则。 节点的属性会被对应地转换为JSON对象的成员"attr_name":"attr_value"。如: XML JSON <xx yy=’nn'></xx> { "xx" : { "yy" : "nn" } } <xx yy="></xx> { "xx" : { "yy" : "" } } 没有子节点、属性和内容的节点被转换为成员"child_name":null XML JSON <xx/> { "xx" : null } 没有子节点和属性,但是有内容的节点被转换为成员"child_name":"child_text" XML JSON <xx>yyy</xx> { "xx" : "yyy" } 其它节点和属性会被适当地转换为"child_name":对象或者"child_name":[elements]对象数组,节点的值会被转换为对象成员的"value",如: XML JSON <xx yy=’nn'><mm>zzz</mm></xx> { "xx" : { "yy" : "nn", "mm" : "zzz" […]

龙生   01 Apr 2016
View Details

ASP.NET中XML和JSON互转

一、XML和JSON字符串的对应表格   1、节点的属性会被对应地转换为JSON对象的成员"attr_name":"attr_value"。如:   XML JSON <xx yy=’nn'></xx> { "xx" : { "yy" : "nn" } } <xx yy="></xx> { "xx" : { "yy" : "" } }   2、没有子节点、属性和内容的节点被转换为成员"child_name":null   XML JSON <xx/> { "xx" : null }   3、没有子节点和属性,但是有内容的节点被转换为成员"child_name":"child_text"   XML JSON <xx>yyy</xx> { "xx" : "yyy" }   4、其它节点和属性会被适当地转换为"child_name":对象或者"child_name":[elements]对象数组,节点的值会被转换为对象成员的"value",如:   XML JSON <xx yy=’nn'><mm>zzz</mm></xx> { "xx" : { "yy" : "nn", "mm" : "zzz" } } <xx yy=’nn'><mm>zzz</mm><mm>aaa</mm></xx> { "xx" : { "yy" : "nn", "mm" : [ "zzz", "aaa" ] } } <xx><mm>zzz</mm>some text</xx> […]

龙生   01 Apr 2016
View Details

部署时,出现用户代码未处理 System.Security.Cryptography.CryptographicException 错误解决方法

在调用RSA加密的.pfx密钥时,在本地调试没有问题,可以布署到服务器,就会报以下的错误: 用户代码未处理 System.Security.Cryptography.CryptographicException

处理方法: IIS 应用程序池--选中你网站的所配置的应用程序池--右键 选择 “高级配置” --将“加载用户配置文件” 设置为True 。问题解决 from:http://www.cnblogs.com/jys509/p/4499978.html

龙生   31 Mar 2016
View Details

微软的CryptoUtil.cs

龙生   30 Mar 2016
View Details

wx.onMenuShareTimeline使用注意事项

我在开发测试过程中,发现使用wx.onMenuShareTimeline无效果,没有显示我定义的图片、title和链接,经过调试发现原因如下: 1.图片大小要大于300pix才能显示 2.这个方法必须先config成功,然后再wx.ready里才能调用。我直接放到$(function(){})里执行,实践证明是不行的。

from:http://www.cnblogs.com/zhouyu629/p/4496065.html

龙生   30 Mar 2016
View Details

WIN2003服务器防火墙开放FTP服务

WIN2003的服务器,打开系统自带的防火墙后,用FLASHFXP连接FTP时出现沟通困难,无法列表数据,FTP无法连接,通过检查后发现WIN2003在默认情况下,该防火墙是禁止开放本机FTP服务的。通过一系列的试验发现解决该问题的方法,希望对大家有所帮助,步骤如下所述: 第1步,点击开始菜单,进入控制面板,选择WINDOW防火墙,进入防火墙设置窗口,选择例外菜单,进入防火墙例外窗口,之后点击下方的添加端口,出现添加端口对话框,在此设置名称FTP,和开启端口21后,点击确定,如图1所示:     图1防火墙例外中添加端口设置 第2步,在桌面上右键单击“网上邻居”图标,选择“属性”命令。在打开的“网络连接”窗口中右键单击“本地连接”图标,选择“属性”命令,之后选择高级按钮,点击设置进入WINDOW防火墙设置窗口,如图2所示:   图2本地连接属性进入防火墙设置 第3步,打开“防火墙设置”对话框,切换到“高级”选项卡。单击本地连接对话框右侧的“设置”按钮,打开“高级设置”对话框。   图3本地连接高级设置窗口 第4步,在默认的“服务”选项卡中,用户可以设置在开启防火墙功能的前提下本机开放的服务类别。由于需要提供FTP服务,因此只需开放该服务即可。在服务列表中选中“FTP服务器”选项,随之打开的“服务设置”对话框要求填写计算机名称。保持默认内容并连续单击“确定”完成设置即可,如图4所示。   from:http://blog.pynet.net/u/pyxyp/archives/2011/99.html

龙生   25 Mar 2016
View Details

Navigator 对象

Navigator 对象 Navigator 对象包含有关浏览器的信息。 注释:没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象。 Navigator 对象集合 集合 描述 plugins[] 返回对文档中所有嵌入式对象的引用。 该集合是一个 Plugin 对象的数组,其中的元素代表浏览器已经安装的插件。Plug-in 对象提供的是有关插件的信息,其中包括它所支持的 MIME 类型的列表。 虽然 plugins[] 数组是由 IE 4 定义的,但是在 IE 4 中它却总是空的,因为 IE 4 不支持插件和 Plugin 对象。 Navigator 对象属性 属性 描述 appCodeName 返回浏览器的代码名。 appMinorVersion 返回浏览器的次级版本。 appName 返回浏览器的名称。 appVersion 返回浏览器的平台和版本信息。 browserLanguage 返回当前浏览器的语言。 cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值。 cpuClass 返回浏览器系统的 CPU 等级。 onLine 返回指明系统是否处于脱机模式的布尔值。 platform 返回运行浏览器的操作系统平台。 systemLanguage 返回 OS 使用的默认语言。 userAgent 返回由客户机发送服务器的 user-agent 头部的值。 userLanguage 返回 OS 的自然语言设置。 Navigator 对象方法 方法 描述 javaEnabled() 规定浏览器是否启用 Java。 taintEnabled() 规定浏览器是否启用数据污点 (data tainting)。 from:http://www.w3school.com.cn/jsref/dom_obj_navigator.asp

龙生   24 Mar 2016
View Details

HTML5 WebStorage(HTML5本地存储技术)

WebStorage是HTML5中本地存储的解决方案之一,在HTML5的WebStorage概念引入之前除去IE User Data、Flash Cookie、Google Gears等看名字就不靠谱的解决方案,浏览器兼容的本地存储方案只有使用cookie。有同学可能会问,既然有了cookie本地存储,为什么还要引入WebStorage的概念? Cookie肿么了 cookie的缺陷是非常明显的 1. 数据大小:作为存储容器,cookie的大小限制在4KB左右这是非常坑爹的,尤其对于现在复杂的业务逻辑需求,4KB的容量除了存储一些配置字段还简单单值信息,对于绝大部分开发者来说真的不知指望什么了。 2. 安全性问题:由于在HTTP请求中的cookie是明文传递的(HTTPS不是),带来的安全性问题还是很大的。 3. 网络负担:我们知道cookie会被附加在每个HTTP请求中,在HttpRequest 和HttpResponse的header中都是要被传输的,所以无形中增加了一些不必要的流量损失。 WebStorage WebStorage是HTML新增的本地存储解决方案之一,但并不是为了取代cookie而制定的标准,cookie作为HTTP协议的一部分用来处理客户端和服务器通信是不可或缺的,session正是依赖于实现的客户端状态保持。WebStorage的意图在于解决本来不应该cookie做,却不得不用cookie的本地存储。 WebStorage提供两种类型的API:localStorage和sessionStorage,两者的区别看名字就有大概了解,localStorage在本地永久性存储数据,除非显式将其删除或清空,sessionStorage存储的数据只在会话期间有效,关闭浏览器则自动删除。两个对象都有共同的API。 复制代码 代码如下: interface Storage {   readonly attribute unsigned long length;   DOMString? key(unsigned long index);   getter DOMString getItem(DOMString key);   setter creator void setItem(DOMString key, DOMString value);   deleter void removeItem(DOMString key);   void clear(); }; 1、length:唯一的属性,只读,用来获取storage内的键值对数量。 2、key:根据index获取storage的键名 3、getItem:根据key获取storage内的对应value 4、setItem:为storage内添加键值对 5、removeItem:根据键名,删除键值对 6、clear:清空storage对象 WebStorage如何使用 在实现了WebStorage的浏览器中,页面有两个全局的对象localStorage和sessionStorage 以localStorage为例,看一段简单的操作代码 复制代码 代码如下: var ls=localStorage;             console.log(ls.length);//0             ls.setItem('name',’Byron');             ls.setItem('age',’24');             console.log(ls.length);//2             //遍历localStorage             for(var i=0;i<ls.length;i++){                 /*                     age : 24                     […]

龙生   24 Mar 2016
View Details

js移动设备手机跳转地址代码

另外的三种: 版本1

版本2

版本3 百度webapp版

龙生   23 Mar 2016
View Details

制作《幽灵公主》等动画片的动画软件宣布开源

Toonz公司开发的软件你可能从未听说过,但是你已经看到过无数的电视节目和电影使用其产品。Toonz公司的主要产品是企业动画软件,集成绘图,编辑,动画和合成等功能。Toonz开发的动画软件,曾经被用于创建《飞出个未来》、《幽灵公主》和《千与千寻》等动画片。 据报道,该动画软件免费开源之前的售价曾经高达每张许可证1万美元。但作为DWANGO收购该公司协议的一部分,Toonz公司宣布其下动画软件免费开源。 吉卜力工作室成像执行总监奥井淳表示,该公司使用Toonz动画软件,因为它可以将手工绘制动画和数字绘制无缝结合。吉卜力工作室首先在1995年使用这款软件制作《幽灵公主》动画片。 3月26日,该公司将发布TOONZ吉卜力工作室版动画软件,其中包括与吉卜力工作室合作开发的功能,让独立动画师无需支付高昂的前期费用就使用该软件。相反,TOONZ公司计划让软件免费,通过出售安装服务,培训和支持来获得利润。 稿源:cnbeta

龙生   22 Mar 2016
View Details
1 266 267 268 410