在 JSON 中,字符 n 通常是用于表示 null 值的。但是,当我们将 JSON 返回给前端时,n 会被自动转义成字符串 \u006E。这种情况可能会在某些场景下造成一些问题,例如我们需要在前端判断某个值是否为 null 时就无法直接使用 n。
那么,如何才能让 n 不被转义呢?以下是两种方法:
// 方法一:使用 JSON.stringify 第二个参数
const obj = {
x: null,
n: null
};
const jsonString1 = JSON.stringify(obj, null, ' ');
console.log(jsonString1); // 输出:{"x":null,"n":null}
// 方法二:使用JS中的字符串模板
const jsonString2 = `{
"x": null,
"n": null
}`;
console.log(jsonString2); // 输出:{"x":null,"n":null}
第一种方法是使用 JSON.stringify 的第二个参数对输出的 JSON 进行格式化。第二个参数是一个函数或字符串,用于控制输出的格式,这里我们传了一个空格字符串,即每个属性之间增加一个空格,从而避免了 n 被转义的问题。
第二种方法是使用 JS 中的字符串模板来手动构造 JSON 字符串。这里同样避免了 n 被转义的问题。
无论使用哪种方法,我们都应该注意到在构造 JSON 时要确保所有的字符串都是合法的 JSON 字符串,否则也会导致错误。