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 相关文章推荐
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
Jul 11 Javascript
json跟xml的对比分析
Jun 10 Javascript
js String对象中常用方法小结(字符串操作)
Jan 27 Javascript
Jquery颜色选择器ColorPicker实现代码
Nov 14 Javascript
关于JavaScript中的关联数组分析
Apr 09 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
Jan 03 Javascript
Jquery通过JSON字符串创建JSON对象
Aug 24 Javascript
JavaScript中getUTCSeconds()方法的使用详解
Jun 11 Javascript
Bootstrap提示框效果的实例代码
Jul 12 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
Oct 23 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 Javascript
实现AJAX异步调用和局部刷新的基本步骤
Mar 17 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实现快速排序法函数代码
2012/08/27 PHP
php命令行用法入门实例教程
2014/10/27 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
Python3实现购物车功能
2018/04/18 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python调用接口的4种方式代码实例
2019/11/19 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
微博营销计划书
2014/01/10 职场文书
实习生岗位职责
2014/04/12 职场文书
工程项目经理任命书
2014/06/05 职场文书
中专生自荐信
2014/06/25 职场文书
教师四风问题整改措施
2014/09/25 职场文书
领导欢迎词致辞
2015/01/23 职场文书
交通事故案件代理词
2015/05/23 职场文书
毕业班工作总结
2015/08/10 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js