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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
12个非常有创意的JavaScript小游戏
Mar 18 Javascript
javascript实现动态模态绑定grid过程代码
Sep 22 Javascript
FullCalendar日历插件应用之数据展现(一)
Dec 23 Javascript
angular实现表单验证及提交功能
Feb 01 Javascript
JSON与JS对象的区别与对比
Mar 01 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
vue.js删除动态绑定的radio的指定项
Jun 02 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
一文了解Vue中的nextTick
May 06 Javascript
JS开发常用工具函数(小结)
Jul 04 Javascript
Node.js API详解之 timer模块用法实例分析
May 07 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读注册表
2006/10/09 PHP
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
php swoft框架实例用法
2020/12/22 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
js中url对象化管理分析
2017/12/29 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
2020/05/28 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
高校自主招生自荐信
2013/12/09 职场文书
音乐器材管理制度
2014/01/31 职场文书
优秀高中生事迹材料
2014/02/11 职场文书
户外活动总结范文
2014/04/30 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
创业计划书之服装
2019/10/07 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers