js中JSON学习笔记

mac2026-01-22  8

json学习笔记

前言: json是JavaScript的一个严格的子集,利用了JavaScript中的一些模式来表示数据结构化

语法

类似js, 但不支持undefined
对象,数组
json不支持变量,函数或对象实例

简单值

json的字符串与js的字符串的最大区别在于,json字符串必须使用双引号

对象

json的对象要求给属性名上面加上双引号

数组

json的数组类似与JavaScript数组

解析与序列化

将json变为js能直接使用的数据类型

JSON对象

json对象的两个方法
stringify() 将JavaScript对象序列化为json字符串parse() 将json字符串解析为原生 JavaScript 值

序列化选项

过滤结果
在 stringify 中传入参数(数组,函数)以达到过滤的效果
字符串缩进
stringify 中第三个参数若为数值的话,则在转化成的 json 出现缩进也可以放字符串,相应的空格变为该字符串, 最大缩进空格数为10,所有大于10的值都会自动转换为10
toJSON()方法
为一个对象自定义 toJSON() 属性函数将一个对象传入 stringify ,序列化该对象的顺序如下: 如果该对象存在 toJSON 方法而且能通过它取得有效值,则调用该方法,否则返回对象本身如果存在第二个参数,应用这个函数过滤器。传入函数过滤器的值是第 1 步返回的值对第 2 步返回的每个值进行相应的序列化如果执行了第三个参数,执行相应的格式化

解析选项

JSON.parse() 方法也可以接收参数, 该参数是一个函数,将在每个键值对上进行调用。为了区别 JSON.stringify 接受的替换函数, 这个函数被成为还原函数 (reviver)。

总结

JSON是一种轻量级的数据格式,可以简化表示复杂数据结构的工作量ECMAScript 5 定义了一个原生的 JSON 对象, 可以用来将对象序列化为 JSON 字符串或者将 JSON 数据解析为 JavaScript 对象

最新回复(0)