您可以使用 `JSON.stringify()` 将JSON对象转换为字符串。
让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj))
这会产生一个单行字符串:
{一个!”}
但是,您也可以设置两个可选参数,一个过滤数组或回调方法和一个缩进参数。例如,将缩进设置为 4 会创建一个具有 4 个空格缩进的多行字符串:
让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, false, 4))
输出:
{
“一”:1,
“乙”:3,
“c”:“嘘!”
}
如果您想要制表符而不是空格,您还可以将缩进参数定义为字符串:
让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, false, “t”))
输出:
{
“一”:1,
“乙”:3,
“c”:“嘘!”
}
或任何其他字符串:
让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, false, “xxx”))
输出:
{
xxx“a”:1,
xxx“b”:3,
xxx“c”:“嘘!”
}
您可以定义要显示的键数组来过滤结果:
让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, ['a','c'], 4))
输出:
{
“一”:1,
“c”:“嘘!”
}
您可以编写一个过滤回调函数,将其应用于JSON对象。例如,只允许显示数字:
const onlyNumbers = (key,value) => {
返回(类型值==='字符串')?未定义:值
}
让obj = {“a”:1,“b”:3,“c”:“嘘!”};
console.log(JSON.stringify(obj, onlyNumbers, 4))
输出:
{
“一”:1,
“乙”:3
}
您可以在MDN上看到更多示例。
虽然我喜欢这些选项,但当一种方法允许不同的值来确定要做什么时,我总是觉得很奇怪。让替换器是数组或回调,而空格选项是数字或字符串会让人感到困惑。你怎么看?