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 相关文章推荐
JavaScript学习笔记(十七)js 优化
Feb 04 Javascript
js+JQuery返回顶部功能如何实现
Dec 03 Javascript
SWFObject基本用法实例分析
Jul 20 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 Javascript
Javascript调试之console对象——你不知道的一些小技巧
Jul 10 Javascript
浅谈关于axios和session的一些事
Jul 13 Javascript
Vue的MVVM实现方法
Aug 16 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
详解基于vue-cli优化的webpack配置
Nov 06 Javascript
JS实现的合并多个数组去重算法示例
Apr 11 Javascript
VueCli3构建TS项目的方法步骤
Nov 07 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 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中的比较运算符详解
2013/10/28 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
js闭包学习心得总结
2018/04/17 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
视光学毕业生自荐书范文
2014/02/13 职场文书
出纳员的岗位职责
2014/02/22 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python