Json——js和C#对Json的操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式。博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Android调用C#的Webservice的接口,就是通过Json这种格式来传递数据的。就是因为这种完全独立于语言的数据格式,所以在系统的前后台被广泛使用。本篇用来记录下前端JS以及后端C#里面JSON的一些常用的操作方法。笔记笔记,好记性不如多笔记~~
JS前端JSON操作:
一、Json数据转字符串:
var myList = [
{ Name: "Jim", Age: 20 },
{ Name: "Kate", Age: 21 },
{ Name: "Lilei", Age: 18 },
{ Name: "John", Age: 14 },
{ Name: "LinTao", Age: 25 }
];
方法一:
var oString2 = JSON.stringify(myList);
结果

这个方法是js中JSON对象内置的。可以直接使用。
方法二:
var oString1 = myList.toJSONString();
这个方法需要json.js的支持。直接使用会报异常。
二、string字符串转JSON对象:
方法一:
var oString2 = JSON.stringify(myList); var oJson1 = eval(oString2);
eval()方法是内置的。可直接使用。
方法二:
var oJson2 = $.parseJSON(oString2);
需要jQuery的支持。
方法三:
var oJson3 = JSON.parse(oString2);
是js内置的,可以直接使用。
方法四:
var oJson4 = String.parseJSON(oString2);
需要引json.js文件。
综上所述:在js里面JSON变量操作不需要引用任何文件直接使用的方法有JSON.stringify(myList)、JSON.parse(oString2)、eval(oString2)。
C#后台JSON处理:
在C#里面,Json可以理解为一种匿名对象,每一个键值对就可以理解为对应对象的属性和值。在后端Json这种格式一般用于对象的序列化:
public void JsonTooo()
{
string jsonStr = "{\"name\":\"tom\",\"age\":11}"; //jsonStr 为json格式的字符串
JavaScriptSerializer json = new JavaScriptSerializer(); //实例化一个能够序列化数据的类
ToJson list = json.Deserialize<ToJson>(jsonStr); //将json数据转化为对象类型并赋值给list
string Name = list.name; //Name的值为tom.. list可点出name
}
那么肯定就有一个对象和它对应。
public class ToJson
{
public string name { get; set; } //属性的名字,必须与json格式字符串中的"key"值一样。
public string age { get; set; }
}
这种对应关系的转换序列化方式前面已经说了很多了。在此就不多说。
MVC里面更是很好的支持了后台程序对Json数据的支持。比如Controller里面JsonResult对象
public JsonResult GetEditModel(string strType)
{
var lstRes = new List<DragElementProp>();
List<PageProperty> lstRes = new List<PageProperty>();
return Json(new { lstDataAttr = lstRes, PageAttr = lstPageAttrs }, JsonRequestBehavior.AllowGet);
}
只需要DraElementProp和PageProperty这两个对象支持对象可序列化,就可以直接将对象传到前端:
[DataContract]
public class PageProperty
{
[DataMember]
public string Id { get; set; }
[DataMember]
public string Width { get; set; }
[DataMember]
public string Height { get; set; }
[DataMember]
}
前端和后端通信使用Ajax的时候大部分情况是通过Json数据进行数据交互的。这个时候需要指定datatype类型为json。
$.Gmzp.AjaxPost = function (strUrl, oParams, funSuccessCallback, funErrorCallback, funFinishCallback) {
        $.ajax({
            type: "POST",
            url: strUrl,
            data: oParams,
        async: false,//false为阻塞请求
        dataType: "json",
            success: funSuccessCallback,
            error: funErrorCallback,
            complete: funFinishCallback
        });
    };
Json——js和C#对Json的操作的更多相关文章
- JS和C#对Json的操作
		
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式.博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Andr ...
 - JavaScript操作JSON的方法总结,JSON字符串转换为JSON对象
		
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...
 - JS中将JSON的字符串解析成JSON数据格式《转》
		
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
 - js中eval详解,用Js的eval解析JSON中的注意点
		
先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要 ...
 - jQuery: jquery.json.js
		
http://api.jquery.com/jQuery.parseJSON/ http://www.json.org/json-zh.html http://fineui.codeplex.com/ ...
 - 用Js的eval解析JSON中的注意点
		
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
 - 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)
		
转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...
 - js便签笔记(10) - 分享:json.js源码解读笔记
		
1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...
 - 问题集录--JS如何处理和解析Json数据
		
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...
 
随机推荐
- 多个精美的导航样式web2.0源码
			
效果体验:http://keleyi.com/keleyi/phtml/divcss/6.htm 兼容多浏览器,例如IE,Chrome,火狐 等. 完整代码,保存到htm文件打开也可以查看效果: &l ...
 - jquery背景自动切换特效
			
查看效果网址:http://keleyi.com/a/bjad/4kwkql05.htm 本特效的jquery版本只支持1.9.0以下. 代码如下: <!DOCTYPE html PUBLIC ...
 - 三道简单的前端HTML/CSS题目
			
使用CSS为多个网页进行相同风格的布局和外观设置时,为了方便对这些网页进行修改,最好使用( ).http://hovertree.com/shortanswer/bjae/7bd72acca32068 ...
 - VS2013新建MVC5项目,使用nuget更新项目引用后发生Newtonsoft.Json引用冲突的解决办法
			
错误信息如下: 错误 3 类型“Newtonsoft.Json.JsonPropertyAttribute”同时存在于“c:\Program Files (x86)\Microsoft V ...
 - C# Stream 和 byte[] 之间的转换
			
一. 二进制转换成图片 MemoryStream ms = new MemoryStream(bytes); ms.Position = ; Image img = Image.FromStream( ...
 - Windows系统变量
			
%ALLUSERSPROFILE% : 列出所有用户Profile文件位置. %APPDATA% : 列出应用程序数据的默认存放位置. %CD% : 列出当前目录. %CLIENTNAME% : 列出 ...
 - Google C++单元测试框架GoogleTest---TestFixture使用
			
一.测试夹具(Test Fixtures):对多个测试使用相同的数据配置 如果你发现自己写了两个或更多的测试来操作类似的数据,你可以使用测试夹具.它允许您为几个不同的测试重复使用相同的对象配置. 要创 ...
 - Android自定义控件4--优酷菜单的菜单键及细节补充
			
在上篇文章中实现了优酷菜单执行动画,本文接着完善已经实现的动画功能 本文地址:http://www.cnblogs.com/wuyudong/p/5915958.html ,转载请注明源地址. 已经实 ...
 - JavaWeb结合七牛云存储搭建个人相册服务
			
JavaWeb结合七牛云存储搭建个人相册服务 一.引言1. 课程概述 相信很多人都知道网站一般会有很多图片,对于小型网站来说,图片放在网站服务器上不算什么,但当图片数量很大时,会造成服务器很臃肿,相应 ...
 - shell脚本执行时报"bad interpreter: Text file busy"的解决方法
			
在执行一个shell脚本时,遇到了“-bash: ./killSession.sh: /bin/bash: bad interpreter: Text file busy”错误提示,如下所示: [or ...