JS操作JSON要领详细总结


Posted in Javascript onAugust 25, 2013

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
本文主要是对JS操作JSON的要领做下总结。
在JSON中,有两种结构:对象和数组。
1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:

var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};

2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
例如:
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

为了方便地处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';

JSON对象:
var str2 = { "name": "cxh", "sex": "man" };

一、JSON字符串转换为JSON对象
要运用上面的str1,必须运用下面的要领先转化为JSON对象:
//由JSON字符串转换为JSON对象 
var obj = eval('(' + str + ')'); 
或者 
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象 
或者 
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

然后,就可以这样读取:
Alert(obj.name); 
Alert(obj.sex);

特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。
例如:

var last=obj.toJSONString(); //将JSON对象转化为JSON字符 
或者 
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符 
alert(last);

留心:
上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。
Javascript 相关文章推荐
JS与框架页的操作代码
Jan 17 Javascript
javascript encodeURI和encodeURIComponent的比较
Apr 03 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
Nov 19 Javascript
javascript开发技术大全 第4章 直接量与字符集
Jul 03 Javascript
JavaScript实现LI列表数据绑定的方法
Aug 04 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
Oct 14 Javascript
JavaScript操作选择对象的简单实例
May 16 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
详解JS对象封装的常用方式
Dec 30 Javascript
详解vue 模版组件的三种用法
Jul 21 Javascript
Canvas放置反弹效果随机图形(实例)
Aug 17 Javascript
JavaScript碰撞检测原理及其实现代码
Mar 12 Javascript
JS 两个字符串时间的天数差计算
Aug 25 #Javascript
js中onload与onunload的使用示例
Aug 25 #Javascript
JQuery中对Select的option项的添加、删除、取值
Aug 25 #Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 #Javascript
jquery中加载图片自适应大小主要实现代码
Aug 23 #Javascript
jquery eval解析JSON中的注意点介绍
Aug 23 #Javascript
jQuery中RadioButtonList的功能及用法实例介绍
Aug 23 #Javascript
You might like
php防攻击代码升级版
2010/12/29 PHP
php中OR与|| AND与&&的区别总结
2013/10/26 PHP
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
python实现粒子群算法
2020/10/15 Python
python如何修改文件时间属性
2021/02/05 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
代理班主任的自我评价
2014/02/04 职场文书
普通党员整改措施
2014/10/24 职场文书
单方投资意向书
2015/05/11 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书