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 相关文章推荐
Dojo 学习要点
Sep 03 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
Jun 19 Javascript
javascript获取选中的文本的方法代码
Oct 30 Javascript
javascript单引号和双引号的区别和处理
May 14 Javascript
JavaScript版的TwoQueues缓存模型
Dec 29 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
May 09 Javascript
JavaScript中三种常见的排序方法
Feb 24 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
vuex的使用步骤
Jan 06 Vue.js
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中的串行化变量和序列化对象
2006/09/05 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php轻松实现文件上传功能
2016/03/03 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
在Python中使用Neo4j数据库的教程
2015/04/16 Python
Python itertools模块详解
2015/05/09 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
python实现定时提取实时日志程序
2018/06/22 Python
python 常用的基础函数
2018/07/10 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
家长写给老师的建议书
2014/03/13 职场文书
岗位职责说明书
2014/05/07 职场文书
农业项目合作意向书
2015/05/08 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP