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下对于事件、事件流、事件触发的顺序随便说说
Jul 17 Javascript
jquery模拟SELECT下拉框取值效果
Oct 23 Javascript
javascript单引号和双引号的区别和处理
May 14 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 Javascript
详解js访问对象的属性和方法
Oct 25 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
Sep 18 Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 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
我常用的几个类
2006/10/09 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
理解JS事件循环
2016/01/07 Javascript
js实现图片360度旋转
2017/01/22 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
Python进程通信之匿名管道实例讲解
2015/04/11 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
html5与css3小应用
2013/04/03 HTML / CSS
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
户外亲子活动策划方案
2014/02/07 职场文书
培训科主任岗位职责
2014/08/08 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
vue实现锚点定位功能
2021/06/29 Vue.js
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL