javascript操作JSON的要领总结


Posted in Javascript onDecember 09, 2012

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"};

名称是一个字符串; 值可以是一个字符串,一个数值,一个对象,一个布林值,一个有串行表,或者一个null值。
值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如:

[collection, collection]
字符串:以""括起来的一串字符。
数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。
布林值:表示为 true 或者 false。
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对象 
[html] 
然后,就可以这样读取: 
[code] 
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 检测键盘按键信息及键码值对应介绍
Jan 03 Javascript
js截取固定长度的中英文字符的简单实例
Nov 22 Javascript
使用jquery.qrcode生成彩色二维码实例
Aug 08 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
Sep 21 Javascript
javascript防篡改对象实例详解
Apr 10 Javascript
JavaScript 巧学巧用
May 23 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
Vue实现todolist删除功能
Jun 26 Javascript
JavaScript禁用右键单击优缺点分析
Jan 20 Javascript
javascript canvas时钟模拟器
Jul 13 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 #Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 #Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
Dec 07 #Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
Dec 06 #Javascript
php图像生成函数之间的区别分析
Dec 06 #Javascript
javascript SpiderMonkey中的函数序列化如何进行
Dec 05 #Javascript
javascript中有趣的反柯里化深入分析
Dec 05 #Javascript
You might like
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
比较完整的微信开发php代码
2016/08/02 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
javascript时区函数介绍
2012/09/14 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Python3遍历目录树实现方法
2015/05/22 Python
使用python实现knn算法
2017/12/20 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
python轮询机制控制led实例
2020/05/03 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
环保倡议书格式范文
2014/05/14 职场文书
素质教育标语
2014/06/27 职场文书
大学课外活动总结
2014/07/09 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
房产公证书格式
2015/01/26 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
vue修饰符.capture和.self的区别
2022/04/22 Vue.js