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}
来源:http://www.cnblogs.com/roddy/p/6515485.html