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 相关文章推荐
IE8下关于querySelectorAll()的问题
May 13 Javascript
jQuery为iframe的body添加click事件的实现代码
Apr 07 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
两种JS实现屏蔽鼠标右键的方法
Aug 20 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
如何在vue中使用ts的示例代码
Feb 28 Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 Javascript
微信小程序tabBar 返回tabBar不刷新页面
Jul 25 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 Javascript
JS常用跨域方法实现原理解析
Dec 09 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中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
Python编程中的异常处理教程
2015/08/21 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
python交互式图形编程实例(一)
2017/11/17 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
Django单元测试工具test client使用详解
2019/08/02 Python
Python实现某论坛自动签到功能
2019/08/20 Python
NumPy中的维度Axis详解
2019/11/26 Python
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
武汉瑞得软件笔试题
2015/10/27 面试题
演讲比赛获奖感言
2014/02/02 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
学校教师读书活动总结
2014/07/08 职场文书
迎国庆演讲稿
2014/09/15 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
深入浅析React中diff算法
2021/05/19 Javascript
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
原生JS实现分页
2022/04/19 Javascript