JSON --- 一种轻量级的数据交换格式
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。本篇主要介绍javascript中json的使用方法。
1. 语法
JSON支持表示三种类型的数据:简单值、对象、数组。
- 简单值
和javascript基本数据类型一样,但是不支持
undefined
- 对象
对象属性一定要加双引号
""
, 并且末尾没有分号;
{
"name" : "roddy",
"age" : 25
}
- 数组
和javascript数组一样。
2. 解析与序列化
javascript中主要用
JSON
对象的.stringify()
和.parse()
方法来解析和序列化。
JSON.stringify( jsData[, filter, indent] )
- 把javascript对象序列化为JSON格式的字符串。
jsData
: 待序列化的javascript数据。filter
: 过滤器,可以是一个数组或者一个函数。
数组
: 序列化的JSON中只包含数组中拥有的属性。
函数
: 该函数接收两个参数,分别是对应的键值对key
、value
,该函数返回的值即为JSON中属性对应的值。indent
: 缩进。可以是一个数值或者一个字符串。
数值
: 缩进对应数值的空格符。
字符串
: 用对应字符串代替缩进符。
// javascript对象
var jsObject = {
name : "roddy",
age : 25
};
// 默认
console.log( JSON.stringify( jsObject ) );
// 传入数组过滤器
console.log( JSON.stringify( jsObject, [ "name" ] ) );
// 传入函数过滤器
console.log( JSON.stringify( jsObject, function( key, value ) {
if( key === "name" ) {
return "Roddy";
} else {
return value;
}
} ) );
// 传入数值缩进
console.log( JSON.stringify( jsObject, null, 4 ) );
// 传入字符串缩进
console.log( JSON.stringify( jsObject, null, "-" ) );
// 输出
// {"name":"roddy","age":25}
// {"name":"roddy"}
// {"name":"Roddy","age":25}
/**
{
"name":"roddy",
"age":25
}
**/
/**
{
-"name":"roddy",
-"age":25
}
**/
JSON.parse( jsonData[, reduction])
- 把JSON格式数据解析为javascript数据
jsonData
: 待解析的JSON数据reduction
: 还原函数,该函数接收两个参数,分别是对应的键值对key
、value
,该函数返回的值即为javascript中属性对应的值。
var jsonString = '{ "name" : "roddy", "age" : 25 }';
// 默认
console.log( JSON.parse( jsonString ) );
// 传入还原函数
console.log( JSON.parse( jsonString, function( key, value ) {
if( key === "name" ) {
return "Roddy";
} else {
return value;
}
} ) );
// 输出
// {name:"roddy",age:25}
// {name:"Roddy",age:25}
JSON --- 一种轻量级的数据交换格式的更多相关文章
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - D ...
- python开发_json_一种轻量级的数据交换格式
以下是我做的对于python中json模块的demo 运行效果: Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.16 ...
- 两种常用的数据交换格式:XML和JSON
不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁.易于数据储存.快速读取,且独立于各种编程语言.我们往往传输的是文本文件,比如我们都知道的csv(comma seperated va ...
- 常用两种数据交换格式之XML和JSON的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...
- XML和JSON两种数据交换格式的比较
在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...
- JSON(JS 对象简谱,一种数据交换格式)
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式 存储和表示数据的文本格式 层次结构清晰.简洁 JSON是一个序列化的对象或数组 1.js ...
- json 数据交换格式与java
http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...
- iOS 中 JSON 数据交换格式
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 的详细教程,能够參见 JSON 中国:http://www.json.org.cn/ ...
- json:js和jquery中轻量级数据交换格式
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...
随机推荐
- MySQL什么时候会使用内部临时表?
1.union执行过程 首先我们创建一个表t1 create table t1(id int primary key, a int, b int, index(a)); delimiter ;; cr ...
- Spark学习(三): 基本架构及原理
Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和St ...
- ipython结合virtualenv使用
1.virtualenv使python的开发环境相互隔离,隔离环境可以安装自己的依赖包,避免冲突 2.ipython是交互使用python变的便利 3.在virtualenv环境里使用ipython即 ...
- 完整的MVC框架(前端、后台和数据库)
终于学完了数据库的连接,可以做一个完整的项目了,以前做的练习都没有关联到数据库,没法进行事务. MVC框架 先上图: 老师画的图,有点乱,但是大概意思还是可以理解. 这个练习是简单的存储一个学生读了哪 ...
- Solidworks工程图如何使用,替换图纸格式模板文件
1 如果你有了图纸模板(SLDDRW文件),比如下面的这个文件,则以后把零件的三维图拖放到里面就可以了.注意,这是最简单,最有效的方法,后面另存为的slddrt文件不好使,所以还不如把模板文件另存为S ...
- lua 异常 错误处理 pcall
lua 错误处理 匿名函数 if pcall(function () local s=object.data[1]['type'] end) then return object.data[1]['t ...
- 通达OA 一些工作流调整后带来的后果及应对措施
近期单位有个工作流须要改动,原因是最早设计时控件的字段设计不规范,控件直接使用了人员的名字来命名了.这不使用手机訪问时就出问题了,名字会直接显示出来,如今就须要进行调整. 调整初步有两个方案: 一是全 ...
- C++模板实现的AVL树
1 AVL树的定义 AVL树是一种自平衡二叉排序树.它的特点是不论什么一个节点的左子树高度和右子树的高度差在-1,0,1三者之间. AVL树的不论什么一个子树都是AVL树. 2 AVL树的实现 AVL ...
- ASP.NET MVC判断基于Cookie的Session过期
当我们第一次请求访问时,可以看到Response的Set-Cookie里添加了ASP.NET_SessionId的值,以后再访问时可以看到Resquest里的Cookie已经包含这个Key. Se ...
- Reveal查看任意app的高级技巧
本文转载至 http://blog.csdn.net/wbdwsqwwn/article/details/40476139 Reveal是一个很强大的UI分析工具,与其他几个功能相近的工具(比如Pon ...