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 相关文章推荐
javascript cookies 设置、读取、删除实例代码
Apr 12 Javascript
javascript简易缓动插件(源码打包)
Feb 16 Javascript
JS实现商品倒计时实现代码
May 03 Javascript
JavaScript中标识符提升问题
Jun 11 Javascript
javascript三种代码注释方法
Jun 02 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
Dec 14 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 Javascript
关于webpack代码拆分的解析
Jul 20 Javascript
js对象数组和对象的使用实例详解
Aug 27 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
JavaScript this关键字指向常用情况解析
Sep 02 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
基于PHPExcel的常用方法总结
2013/06/13 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
javascript 闭包疑问
2010/12/30 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
python方向键控制上下左右代码
2018/01/20 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
使用Python 统计高频字数的方法
2019/01/31 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
python实现飞机大战小游戏
2019/11/08 Python
常用的10个Python实用小技巧
2020/08/10 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
物业经理求职自我评价
2013/09/22 职场文书
大学本科毕业生的自我鉴定
2013/11/26 职场文书
机关门卫岗位职责
2013/12/30 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
浅析Python OpenCV三种滤镜效果
2022/04/11 Python