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 相关文章推荐
JavaScript For Beginners(转载)
Jan 05 Javascript
ajaxControlToolkit AutoCompleteExtender的用法
Oct 30 Javascript
13 个JavaScript 性能提升技巧分享
Jul 26 Javascript
jQuery.form插件的使用及跨域异步上传文件
Apr 27 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
详解用webpack2.0构建vue2.0超详细精简版
Apr 05 Javascript
JS Input里添加小图标的两种方法
Nov 11 Javascript
微信小程序之事件交互操作实例分析
Dec 03 Javascript
用npm-run实现自动化任务的方法示例
Jan 14 Javascript
发布订阅模式在vue中的实际运用实例详解
Jun 09 Javascript
layui实现三级联动效果
Jul 26 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
phpMyAdmin 安装及问题总结
2009/05/28 PHP
在项目中寻找代码的坏命名
2012/07/14 PHP
php IP转换整形(ip2long)的详解
2013/06/06 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
javascript版2048小游戏
2015/03/18 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python的Django框架中的表单处理示例
2015/07/17 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
基于python实现把图片转换成素描
2019/11/13 Python
python程序文件扩展名知识点详解
2020/02/27 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
优秀员工评优方案
2014/06/13 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
go 实现简易端口扫描的示例
2021/05/22 Golang
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers