ES12: JSON 新 API

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