使用Jquery解析Json基础知识(转)
在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换、JSON数据的解析是关键。
先明确2个概念例如:
JSON字符串:
var str1 = '{ "name": "deyuyi", "sex": "man" }';
JSON对象:
var str2 = { "name": "deluyi", "sex": "man" };
可以简单这样理解:
JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样;
JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()它;
一、JSON字符串转换为JSON对象
要使用上面的str1,必须使用下面的方法先转化为JSON对象:
A:eval函数
eval函数可以直接将本质符合或者近似符合JSON格式的字符串转换为JSON对象,使用方式如:
eval('(' + str + ')'); //其中str就是满足本标题描述的字符串
//由JSON字符串转换为JSON对象
var str='{ "name": "John" }';
var obj = eval('(' + str + ')');
alert( obj.name); var str2="{ 'name': 'John' }";
var obj2 = eval('(' + str2 + ')');
alert( obj2.name); var str3="{ name: 'John' }";
var obj3 = eval('(' + str3 + ')');
alert( obj3.name);
以上均会输出结果“john”。
Eval方式可以转换以下标准和非标准格式字符串:
var str="{ 'name': 'John' }";
var str2='{ "name": "John" }';
var str3="{ name: 'John' }";
B:parseJSON函数
另一种将标准字符串转换为JSON对象的函数是parseJSON(),使用方式如jQuery.parseJSON(str)//其中str就是满足本标题描述的字符串
//由JSON字符串转换为JSON对象
var str='{ "name": "John" }';
var obj = jQuery.parseJSON(str)
alert(""+ obj.name);
以上均会输出结果“john”。
此种方式仅支持标准格式:var str='{ "name": "John" }';
C:JSON.parse函数
还有一种将标准字符串转换为JSON对象的函数是JSON.parse(),使用方式如JSON.parse(str)//其中str就是满足本标题描述的字符串
var str = '{ "name": "mady", "age": "24" }';
var obj = JSON.parse(str);
alert(obj.name);
以上均会输出结果“john”。
此种方式仅支持标准格式:var str='{ "name": "John" }';
以上结果一致,均输出姓名“john”
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
D:Other方式
如果忍不住想犯错,十分十分想解析非标准、非正规字符串,如:
{name:mady,age:23}
或者
{name:’mady’,age:23}
以及其他的你能想到的各种本质正确的非法格式,那么有扩展库可以解决
jquery-json 扩展库
下载地址在这里:http://code.google.com/p/jquery-json/
这个库用来扩展 jQuery ,对于 JSON 的使用,扩展了两个函数:toJSON和parseJSON
toJSON 函数用来将一个普通的 JavaScript 对象序列化为 JSON 对象。
parseJSON函数用来将一个普通的 JavaScript 对象序列化为 JSON 对象too。
var data=$.toJSON({ x: , y: });
var obj = jQuery.parseJSON(data);
alert(obj.x);
var str = {plugin: 'jquery-json', version: 2.3};
var data2=$.toJSON(str);
var obj2 = jQuery.parseJSON(data2);
alert(obj2.plugin);
以上代码执行结果如

二、将JSON对象转换为字符串
可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);
三、解析读取JSON
我们通过各种方式将字符串转换为JSON对象后就是解析他了。
如上面的例子:
var str2 = { "name": "mady", "sex": "man" };
就可以这样读取:
alert(str2.name);//和C#一样直接往出点…
弹出” mady”。
我们遇到的JSON很少有这么简单的,比如复杂一点的JSON对象如:
var str={"GetUserPostByIdResult":{"Age":"33","ID":"2server","Name":"mady"}};
解析用:
alert(str.GetUserPostByIdResult.Name);//一次点不出来,我多点几次
弹出:”mady”。
再再复杂一点的如:
var data=" { root: [ {'name':'6200','value':'0'}, {'name':'6101','value':'xa'}, {'name':'6102','value':'beijing'}, {'name':'6103','value':'haerbin'}]}";
如果你想单挑的话,解析用:
alert(dataObj.root[0].name);
弹出:“6200”。
如果你想群挑的话,解析用:
$.each(dataObj.root, function(index, item) {
$("#info").append(
"<div>" +index+":"+ item.name + "</div>" +
"<div>" +index+":"+ item.value + "</div><hr/>");
});
其中这个“#info”是个DIV的ID如下图:

使用Jquery解析Json基础知识(转)的更多相关文章
- 使用Jquery解析Json基础知识
前言 在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. ...
- jQuery解析JSON的问题
在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. JS ...
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- 用jquery解析JSON数据的方法以及字符串转换成json的3种方法
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...
- Jquery解析json数组字符串
最近在工作中用到了Jquery来解析json字符串,网上解析jquery解析json单个对象的实例不少,但是jquery解析json数组的实例却是不多,下面我举一个简单的例子来跟大家分享与一下,本人水 ...
- 使用jQuery解析JSON数据
我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. 上例中得到的JSON数据如下,是一个嵌套JSON: {"comments&quo ...
- 使用jQuery解析JSON数据(由ajax发送请求到php文件处理数据返回json数据,然后解析json写入html中呈现)
在上一篇的Struts2之ajax初析中,我们得到了comments对象的JSON数据,在本篇中,我们将使用jQuery进行数据解析. 我们先以解析上例中的comments对象的JSON数据为例,然后 ...
- JQuery解析JSon
JsonCreatet.ashx页面 JSonAnalysis.aspx测试页面 一般处理程序中使用Newtonsoft.Json来序列化json 页面使用Jquery 来解析Json数据 Jquer ...
- JSON基础知识总结
JSON基础 一.JSON简介 JSON,全称“JavaScript Object Notation(JavaScript对象表示法)”,起源于JavaScript的对象和数组.JSON,说白了就是J ...
随机推荐
- SqlSugar常用查询实例-拉姆达表达式
SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表 SqlSugarClient db = SugarContext.GetInstance( ...
- (转)PHP获取今天、昨天、明天的日期
<?php echo "今天:".date("Y-m-d")."<br>"; echo "昨天:".d ...
- myeclipse10 中修改html,servlet,jsp等的生成模板
1.进入myeclipse的安装目录 2.用减压软件,(如winrar)打开common\plugins\com.genuitec.eclipse.wizards_9.0.0.me2011080913 ...
- UWP textbox 只能输入数字
private void Testbox_TextChanged(object sender, TextChangedEventArgs e) { var textbox = (TextBox) ...
- PAT_1008 数组元素循环右移问题
题目描述: 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN ...
- 从ZOJ2114(Transportation Network)到Link-cut-tree(LCT)
[热烈庆祝ZOJ回归] [首先声明:LCT≠动态树,前者是一种数据结构,而后者是一类问题,即:LCT—解决—>动态树] Link-cut-tree(下文统称LCT)是一种强大的数据结构,不仅可以 ...
- 【原创】史上最全的Android开发环境搭建
开始学习Android了 看着眼花缭乱的教程真心无奈...So 无耻的来了个大综合 自己充当了小白鼠.. (PS 若文章中链接失效 请留言反馈me会尽快修复) 开始的开始 java运行环境还是很必要 ...
- winForm帮助信息
在项目开发中,由于没更新一块内容,帮助文档都得及时更新,否则将导致最新的应用程序与帮助文档不一致.为此,写了一个帮助页面,这样就可以实时看到帮助信息. 首先,新建了一个帮助信息类,代码如下: /// ...
- java.lang.UnsupportedClassVersionError(Unsupported major.minor version 49.0)报错
报错截图如下:
- 单元测试unit test,集成测试integration test和功能测试functional test的区别
以下内容转自 https://codeutopia.net/blog/2015/04/11/what-are-unit-testing-integration-testing-and-function ...