javascript操作JSON的要领总结


Posted in Javascript onDecember 09, 2012

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"};

名称是一个字符串; 值可以是一个字符串,一个数值,一个对象,一个布林值,一个有串行表,或者一个null值。
值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如:

[collection, collection]
字符串:以""括起来的一串字符。
数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。
布林值:表示为 true 或者 false。
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对象 
[html] 
然后,就可以这样读取: 
[code] 
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 相关文章推荐
风吟的小型JavaScirpt库 (FY.JS).
Mar 09 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
Mar 29 Javascript
window.opener用法和用途实例介绍
Aug 19 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
Sep 06 Javascript
js select下拉联动 更具级联性!
Apr 17 Javascript
javascript函数的四种调用模式
Jan 08 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
Apr 20 Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
浅谈vue项目如何打包扔向服务器
May 08 Javascript
JS实现动态星空背景效果
Nov 01 Javascript
Ajax实现异步加载数据
Nov 17 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 #Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 #Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
Dec 07 #Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
Dec 06 #Javascript
php图像生成函数之间的区别分析
Dec 06 #Javascript
javascript SpiderMonkey中的函数序列化如何进行
Dec 05 #Javascript
javascript中有趣的反柯里化深入分析
Dec 05 #Javascript
You might like
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
php的常量和变量实例详解
2017/06/27 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
Python 迭代器工具包【推荐】
2016/05/06 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
毕业生找工作推荐信
2013/11/21 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
药店促销活动总结
2014/07/10 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
Go语言并发编程 sync.Once
2021/10/16 Golang