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 相关文章推荐
使用Mootools动态添加Css样式表代码,兼容各浏览器
Dec 12 Javascript
js判断undefined类型示例代码
Feb 10 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
javascript事件冒泡实例分析
May 13 Javascript
用js编写的简单的计算器代码程序
Aug 04 Javascript
jQuery自动完成插件completer附源码下载
Jan 04 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
vue2.0实战之基础入门(1)
Mar 27 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
在Vue中使用Echarts实例图的方法实例
Oct 10 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设计模式中的工厂模式
2008/06/12 PHP
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
js 蒙版进度条(结合图片)
2010/03/10 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
python通过线程实现定时器timer的方法
2015/03/16 Python
python保存字符串到文件的方法
2015/07/01 Python
python将回车作为输入内容的实例
2018/06/23 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
一套软件测试笔试题
2014/07/25 面试题
战略合作意向书范本
2014/04/01 职场文书
法学专业求职信
2014/07/15 职场文书
2014最新离职证明范本
2014/09/12 职场文书
建筑工程催款函
2015/06/24 职场文书