在前端项目中经常遇到将对象转为JSON字符串的需要,因为在数据请求过程中,参数数据可能需要转化为字符串以方便传输或存储。而且,返回的数据如果是JSON字符串格式,前端还需要将JSON字符串转化为对象,以方便使用。因此JSON.stringify和JSON.parse是经常用到的。我在这里记录一下两个方法的简单使用,以及一些简单的内部原理,希望自己能更好的理解和使用这两个方法。
使用方法:
JSON.stringify
该方法是将一个JavaScript值(通常是对象或者数组)转换为一个 JSON字符串。
- 用法:JSON.stringify(value[, replacer [, space]])
-
参数 描述 value 要转换的 JavaScript 值(通常为对象或数组)。 replacer 可选。用于执行转换的函数或数组。
(1)如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。如果此函数返回 undefined,则排除成员。
(2)如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。如果该参数为null或者未提供,则对象所有的属性都会被序列化;
space 可选,指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格;如果该参数没有提供(或者为null)将没有空格。space 也可以使用非数字,如:\t。
常用用法1:
JSON.stringify({}); // '{}'
JSON.stringify(true);