JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前端与后端的数据传输。ES12引入了一些新的JSON API,使得JSON的使用更加便捷和高效。本文将介绍ES12中的JSON新API,并提供示例代码。
JSON.stringify()的新参数
JSON.stringify()方法将JavaScript对象转换为JSON字符串。ES12新增了两个可选参数,用于控制序列化的过程。
replacer参数
replacer参数是一个函数或一个数组,用于控制序列化过程中的转换。函数接收两个参数:键和值。如果函数返回undefined,则忽略该键值对;否则,返回的值将成为序列化后的值。如果replacer参数是一个数组,则只有数组中包含的键值对才会被序列化。
下面是一个使用replacer参数的示例:
-- -------------------- ---- ------- ----- --- - - ----- ------ ---- --- ------- ------- -------- ----------- --------- -- ----- ---------- - ------------------- ----- ------ -- - -- ---- --- --------- - ------ ---------- - -- ---- --- ---------- - ------ ------------- --- - ------ ------ --- ------------------------ -- ------- ------------------------------------------ --------
在上面的示例中,我们使用了一个函数作为replacer参数,将gender键值对过滤掉,并将hobbies数组转换为字符串。
space参数
space参数是一个字符串或一个数字,用于控制序列化后的字符串的缩进格式。如果space参数是一个数字,则表示缩进的空格数;如果是一个字符串,则表示缩进的字符串。如果space参数是一个空字符串,则表示不缩进。
下面是一个使用space参数的示例:
-- -------------------- ---- ------- ----- --- - - ----- ------ ---- --- -------- ----------- --------- -- ----- ---------- - ------------------- ----- --- ------------------------ -- ------- -- - -- ------- ------ -- ------ --- -- ---------- - -- ---------- -- -------- -- - -- -
在上面的示例中,我们将space参数设置为2,表示缩进两个空格。
JSON.parse()的新参数
JSON.parse()方法将JSON字符串转换为JavaScript对象。ES12新增了一个可选参数,用于控制解析的过程。
reviver参数
reviver参数是一个函数,用于控制解析过程中的转换。函数接收两个参数:键和值。如果函数返回undefined,则忽略该键值对;否则,返回的值将成为解析后的值。
下面是一个使用reviver参数的示例:
-- -------------------- ---- ------- ----- ---------- - --------------------------------------------------------- ----- --- - ---------------------- ----- ------ -- - -- ---- --- ---------- - ------ --------------- -- --------------------- - ------ ------ --- ----------------- -- ------- ------ ------ ---- --- -------- ----------- ----------
在上面的示例中,我们使用了一个函数作为reviver参数,将hobbies数组中的元素转换为大写字母。
总结
ES12中的JSON新API使得JSON的使用更加便捷和高效。我们可以使用replacer参数和space参数控制序列化的过程,使用reviver参数控制解析的过程。这些新API的使用可以提高前端开发的效率和质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/662d5d13d3423812e4ad6e29