前言
JSON 是一种轻量级的数据交换格式,常用于前后端数据传输和存储。在 ECMAScript 2019 中,JSON 对象新增了一些方法,使得我们能够更方便地处理 JSON 数据。本文将详细介绍这些新的方法,并给出相应的示例代码。
JSON.stringify
JSON.stringify 方法将 JavaScript 对象转换为 JSON 字符串。在 ECMAScript 2019 中,JSON.stringify 方法新增了两个参数,使得我们能够更灵活地控制字符串的生成。
第一个参数:replacer
第一个参数 replacer 是一个函数或一个数组,用于控制哪些属性应该被序列化。如果 replacer 是一个函数,它将被传入被序列化的对象和属性名,返回值将被序列化。如果 replacer 是一个数组,它应该包含要序列化的属性名。
-- -------------------- ---- ------- ----- --- - - ----- -------- ---- --- ------- -------- -- -- -------- ----- ----- ---- - ------------------- ----- ------ -- - -- ---- --- --------- - ------ ---------- -- ---- ------ -- - ------ ------ --- ------------------ -- ------------------------- -- -------- ----- ----- ---- - ------------------- -------- -------- ------------------ -- -------------------------
第二个参数:space
第二个参数 space 是一个字符串或一个数字,用于控制缩进和换行。如果 space 是一个字符串,它将被用作缩进字符串;如果 space 是一个数字,它将被用作缩进的空格数。
-- -------------------- ---- ------- ----- --- - - ----- -------- ---- --- -------- ------- ---------- -- ----- ---- - ------------------- ----- --- -- ------ ------------------ -- - ------- -------- ------ --- ---------- - ------ --------- - - -- ----- ---- - ------------------- ----- ------ -- ------- ------------------ -- - -------- -------- ------- --- ----------- - -------- ----------- -- - --
JSON.parse
JSON.parse 方法将 JSON 字符串转换为 JavaScript 对象。在 ECMAScript 2019 中,JSON.parse 方法新增了一个参数,使得我们能够更方便地处理日期字符串。
第一个参数:reviver
第一个参数 reviver 是一个函数,用于在将 JSON 字符串转换为 JavaScript 对象时,对每个属性进行转换。reviver 函数接收两个参数,属性名和属性值,返回值将作为属性值返回。
-- -------------------- ---- ------- ----- --- - --------------------------------------------------------- ----- --- - --------------- ----- ------ -- - -- ---- --- ----------- - ------ --- ------------ -- --------- ---- -- - ------ ------ --- ----------------- -- ------ -------- --------- --- --- -- ---- -------- -------- ---------
总结
ECMAScript 2019 中的 JSON 方法使得我们能够更方便地处理 JSON 数据。JSON.stringify 方法的 replacer 和 space 参数使得我们能够更灵活地控制字符串的生成,JSON.parse 方法的 reviver 参数使得我们能够更方便地处理日期字符串。在使用这些方法时,我们应该根据具体的场景和需求来选择适当的参数。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/656065b2d2f5e1655da96406