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的操作的更多相关文章

  1. JS和C#对Json的操作

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式.博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Andr ...

  2. JavaScript操作JSON的方法总结,JSON字符串转换为JSON对象

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  3. JS中将JSON的字符串解析成JSON数据格式《转》

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  4. js中eval详解,用Js的eval解析JSON中的注意点

    先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要 ...

  5. jQuery: jquery.json.js

    http://api.jquery.com/jQuery.parseJSON/ http://www.json.org/json-zh.html http://fineui.codeplex.com/ ...

  6. 用Js的eval解析JSON中的注意点

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  7. 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

    转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...

  8. js便签笔记(10) - 分享:json.js源码解读笔记

    1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...

  9. 问题集录--JS如何处理和解析Json数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

随机推荐

  1. Git分布式版本控制学习

    git和SVN都是版本控制系统.git是命令行操作,不喜欢的就算了,看完如果有身体不适还请及时就医~ git  WIN32百度网盘下载地址:http://pan.baidu.com/s/1c1AeY9 ...

  2. 协调者布局:CoordinatorLayout

    layout_scrollFlag属性: scroll:需要哪个View滚动就需要设置该属性: exitUntilCollapsed:向上推动屏幕的时候滑动的部分折叠起来,只有下滑到最低端的时候折叠部 ...

  3. CoreData的一些简单运用

    1.首先创建一个新的工程 记得勾选下面的 Use Core Data 万恶分割线———————————————————————— 然后点击Add Entity 创建一个类似于表名. 万恶分割线———— ...

  4. SDWebImage的使用

    - setItem:(CustomItem *)item { _item = item; // 占位图片 UIImage *placeholder = [UIImage imageNamed:@&qu ...

  5. 浅谈c#中的delegate和event了

    一.开篇忏悔 对自己最拿手的编程语言C#,我想对你说声对不起,因为我到现在为止才明白c#中的delegate和event是怎么用的,惭愧那.好了,那就趁着阳光明媚的早晨简单来谈谈delegate和ev ...

  6. Maven之 聚合与继承 详解

    说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高, ...

  7. ansible使用文档

    假设A机器上安装ansible yum install ansible vim /etc/ansible/hosts 对每个主机加key认证ssh-copy-id -i ~/.ssh/id_rsa.p ...

  8. Nagios学习实践系列——产品介绍篇

    Nagios介绍 Nagios是一款功能强大.优秀的开源监控系统,它能够让你发现和解决IT架构中存在的问题,避免这些问题影响到关键业务流程. Nagios最早于1999年发布,它在开源社区的影响力是相 ...

  9. Nagios学习实践系列——配置研究[监控当前服务器]

    其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...

  10. Unable to determine if the owner (Domain\UserName) of job JOB_NAME has server access

    早上巡检的的时候,发现一数据库的作业报如下错误(作业名等敏感信息已经替换),该作业的OWNER为一个域账号: JOB RUN: 'JOB_NAME' was run on 2016-6-1 at 7: ...