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 相关文章推荐
JS控制网页动态生成任意行列数表格的方法
Mar 09 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
js改变css样式的三种方法推荐
Jun 28 Javascript
JS扩展类,克隆对象与混合类实例分析
Nov 26 Javascript
js实现仿购物车加减效果
Mar 01 Javascript
vue-cli3.0使用及部分配置详解
Aug 29 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
Apr 04 Javascript
package.json中homepage属性的作用详解
Mar 11 Javascript
微信小程序文章详情功能完整实例
Jun 03 Javascript
vue全局使用axios的操作
Sep 08 Javascript
原生JS实现音乐播放器的示例代码
Feb 25 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 01 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加密解密函数Authcode()修复版代码
2015/04/05 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
js变量提升深入理解
2016/09/16 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
python re模块的高级用法详解
2018/06/06 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
python 安装impala包步骤
2020/03/28 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
学校司机岗位职责
2013/11/14 职场文书
致裁判员加油稿
2014/02/08 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
旷工检讨书1000字
2015/01/01 职场文书
横店影视城导游词
2015/02/06 职场文书
python小程序之飘落的银杏
2021/04/17 Python
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python