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 相关文章推荐
javascript 函数式编程
Aug 16 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
JS自动适应的图片弹窗实例
Jun 29 Javascript
JS文本框默认值处理详解
Jul 10 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
详解百度百科目录导航树小插件
Jan 08 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
深入理解Vue.js源码之事件机制
Sep 27 Javascript
vue数据传递--我有特殊的实现技巧
Mar 20 Javascript
js实现无限瀑布流实例方法
Sep 16 Javascript
让mocha支持ES6模块的方法实现
Jan 14 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
js原型链原理看图说明
2012/07/07 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
python多线程抓取天涯帖子内容示例
2014/04/03 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
公益活动邀请函
2014/02/05 职场文书
大学活动总结格式
2014/04/29 职场文书
设计师求职信模板
2014/05/06 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
小学师德师风整改措施
2014/10/27 职场文书
小学教师节活动总结
2015/03/20 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
公司员工奖惩制度
2015/08/04 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server