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 相关文章推荐
JS网络游戏-(模拟城市webgame)提供的一些例子下载
Oct 14 Javascript
javascript 判断中文字符长度的函数代码
Aug 27 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
Nov 19 Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
jQuery验证插件validation使用指南
Apr 21 Javascript
图解JavaScript中的this关键字
May 28 Javascript
JS递归遍历对象获得Value值方法技巧
Jun 14 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
浅析Vue 和微信小程序的区别、比较
Aug 03 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
Dec 30 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 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
解决CodeIgniter伪静态失效
2014/06/09 PHP
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python 文件处理注意事项总结
2017/04/10 Python
python 中字典嵌套列表的方法
2018/07/03 Python
Python3数字求和的实例
2019/02/19 Python
详解django2中关于时间处理策略
2019/03/06 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
python如何构建mock接口服务
2021/01/28 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
我读书我快乐演讲稿
2014/05/07 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
关于 Python json中load和loads区别
2021/11/07 Python