走进javascript系列(十五)-JSON

一种数据格式,而非编程语言

{
	'name': 'json',
	'age':15
	'v' : [
		'simpleValue',
		'object',
		'array'
	]
}

语法

包含三种数据类型的值

  • 简单值: 字符串类型、数字类型、布尔值、null
  • 对象: 表示{} 复杂数据对象
  • 数组: 表示[] 可以是简单值的集合,也可以是对象的集合,还可以是数组的集合

解析与序列化

JSON对象

  • JSON.stringify() 将对象转成json字符串
  • JSON.parse() 将json字符串序列化成对象

序列化选项

JSON.stringify(obj, [attr1, attr2...]); 过滤出某些属性 
JSON.stringify(obj, function(key, value) {
	// 按一定逻辑规则渲染原对象的值
});
JSON.stringify(obj, null, 4); // 第三个参数缩进字符
可以重写对象的toJSON方法
  • toJSON()可以作为函数过滤器的补充,因此理解序列化的内部顺序十分重要。
  • 假设把一个对象传入 JSON.stringify(),序列化该对象的顺序如下
  • (1) 如果存在 toJSON()方法而且能通过它取得有效的值,则调用该方法。否则,返回对象本身。
  • (2) 如果提供了第二个参数,应用这个函数过滤器。传入函数过滤器的值是第(1)步返回的值。
  • (3) 对第(2)步返回的每个值进行相应的序列化。
  • (4) 如果提供了第三个参数,执行相应的格式化。

JSON.parse() 同样具有第二个参数

JSON.parse(jsonText, function(key, value) {
	// xxx
});

JAVA语法下Fastjson 可以参考
https://www.cnblogs.com/jajian/p/10051901.html

猜你喜欢

转载自www.cnblogs.com/pengsn/p/12742946.html