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 相关文章推荐
jQuery取得iframe中元素的常用方法详解
Jan 14 Javascript
JS正则表达式验证中文字符
May 08 Javascript
利用forever和pm2部署node.js项目过程
May 10 Javascript
微信小程序商品到详情的实现
Jun 27 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
vue复合组件实现注册表单功能
Nov 06 Javascript
vue中实现移动端的scroll滚动方法
Mar 03 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
详解webpack4之splitchunksPlugin代码包分拆
Dec 04 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
Jul 17 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 Javascript
JavaScript实现酷炫的鼠标拖尾特效
Feb 18 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
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python实现加密的方式总结
2020/01/19 Python
keras 多任务多loss实例
2020/06/22 Python
python实现代码审查自动回复消息
2021/02/01 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
Final类有什么特点
2012/04/25 面试题
董事长秘书岗位职责
2013/11/29 职场文书
大学军训感言200字
2014/02/26 职场文书
食品工程专业求职信
2014/06/15 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS