JS操作JSON方法总结(推荐)


Posted in Javascript onJune 14, 2016

JSON概述:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不需要任何特殊的 API 或工具包。

JSON:JavaScript 对象表示法(JavaScript Object Notation)。

JSON 是存储和交换文本信息的语法。类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中

数据由逗号分隔

花括号保存对象

方括号保存数组

好了,以上所述不是本文的重点,本文主要是对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包版本太低。

以上所述是小编给大家介绍的JS操作JSON方法总结(推荐)的全部叙述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
jquery设置控件位置的方法
Aug 21 Javascript
SinaEditor使用方法详解
Dec 28 Javascript
如何防止JavaScript自动插入分号
Nov 05 Javascript
AngularJS应用开发思维之依赖注入3
Aug 19 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
Oct 26 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
Dec 20 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
Angular2 组件间通过@Input @Output通讯示例
Aug 24 Javascript
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
用vue 实现手机触屏滑动功能
May 28 Javascript
JavaScript Promise 用法
Jun 14 #Javascript
Javascript基础_简单比较undefined和null 值
Jun 14 #Javascript
Javascript缓存API
Jun 14 #Javascript
JS修改地址栏参数实例代码
Jun 14 #Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 #Javascript
Javascript基础_嵌入图像的简单实现
Jun 14 #Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
Jun 14 #Javascript
You might like
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
python BeautifulSoup使用方法详解
2013/11/21 Python
django 自定义用户user模型的三种方法
2014/11/18 Python
Python os模块学习笔记
2015/06/21 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
python3实现点餐系统
2019/01/24 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
基于python实现操作redis及消息队列
2020/08/27 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
大四本科生的自我评价
2013/12/30 职场文书
儿媳婚宴答谢词
2014/01/14 职场文书
小学毕业感言300字
2014/02/19 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
安全施工标语
2014/06/07 职场文书
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL
Oracle中日期的使用方法实例
2022/07/07 Oracle