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 相关文章推荐
语义化 H1 标签
Jan 14 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
Aug 28 Javascript
利用jq让你的div居中的好方法分享
Nov 21 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
Aug 12 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
Jan 19 Javascript
uploader秒传图片到服务器完整代码
Apr 22 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
Aug 08 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 Javascript
JavaScript时间日期操作实例小结【5个示例】
Dec 22 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
手把手带你入门微信小程序新框架Kbone的使用
Feb 25 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建立文件夹代码
2015/01/06 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JavaScript更改class和id的方法
2008/10/10 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
python ip正则式
2009/05/07 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
Python pip配置国内源的方法
2020/02/14 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
自主招生自荐信
2013/12/08 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
小学新学期寄语
2014/04/02 职场文书
德育标兵事迹材料
2014/08/24 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
MySQL 时间类型的选择
2021/06/05 MySQL
小程序实现文字循环滚动动画
2021/06/14 Javascript
Redis高可用集群redis-cluster详解
2022/03/20 Redis