jQuery JSON的解析方式分享


Posted in Javascript onApril 05, 2011

等到问题解决了,也大致明白怎么个意思了,归根结底还是对jquery对相关json对象获取的理解有所偏差。
这里考虑都考虑的是服务器返回的是JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。
这里首先给出JSON字符串集,字符串集如下:
代码如下:

var data=" 
{ 
root: 
[ 
{name:'1',value:'0'}, 
{name:'6101',value:'西安市'}, 
{name:'6102',value:'铜川市'}, 
{name:'6103',value:'宝鸡市'}, 
{name:'6104',value:'咸阳市'}, 
{name:'6105',value:'渭南市'}, 
{name:'6106',value:'延安市'}, 
{name:'6107',value:'汉中市'}, 
{name:'6108',value:'榆林市'}, 
{name:'6109',value:'安康市'}, 
{name:'6110',value:'商洛市'} 
] 
}";

这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。
1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:
var dataObj=eval("("+data+")");//转换为json对象 
alert(dataObj.root.length);//输出root的子对象数量 
$.each(dataObj.root,fucntion(idx,item){ 
if(idx==0){ 
return true; 
} 
//输出每个root子对象的名称和值 
alert("name:"+item.name+",value:"+item.value); 
})

注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:
这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。
Javascript 相关文章推荐
学习ExtJS TextField常用方法
Oct 07 Javascript
修改或扩展jQuery原生方法的代码实例
Jan 13 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 Javascript
JavaScript闭包实例详解
Jun 03 Javascript
js获取元素的外链样式的简单实现方法
Jun 06 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
Dec 02 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
vue项目中axios使用详解
Feb 07 Javascript
JS同步、异步、延迟加载的方法
May 05 Javascript
vue cli3适配所有端方案的实现
Apr 13 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
Apr 05 #Javascript
基于jquery的动态创建表格的插件
Apr 05 #Javascript
基于jquery的合并table相同单元格的插件(精简版)
Apr 05 #Javascript
新鲜出炉的js tips提示效果
Apr 03 #Javascript
使用Firebug对js进行断点调试的图文方法
Apr 02 #Javascript
dreamweaver 安装Jquery智能提示
Apr 02 #Javascript
jquery 读取页面load get post ajax 四种方式代码写法
Apr 02 #Javascript
You might like
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
用JS实现的一个include函数
2007/07/21 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
初步剖析C语言编程中的结构体
2016/01/16 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Python项目跨域问题解决方案
2020/06/22 Python
大学生标准推荐信范文
2013/11/25 职场文书
首次购房证明
2015/06/19 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
golang正则之命名分组方式
2021/04/25 Golang
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
SpringBoot Http远程调用的方法
2022/08/14 Java/Android