首页 文章

如何将所有json值转换为String而不进行迭代

提问于
浏览
2

我有JSON,其中所有值都必须更改为字符串 . 值可以是数字,布尔值,未定义或null .

{
    "obj1": [{
        "n1": "n",
        "n2": 1,
        "n3": true
    },
    {
        "n1": "n",
        "n2": 1,
        "n3": null
    }]
}

预期的结果是所有值都应格式化为 string .

Example:

{
    "obj1": [{
        "n1": "n",
        "n2": "1",
        "n3": "true"
    },
    {
        "n1": "n",
        "n2": "1",
        "n3": "null"
    }]
}

通过迭代JSON对象,我们可以做到这一点,但有没有更简单的方法来做到这一点 .

2 回答

  • 2

    你可以用Json.stringify()方法做到这一点

    例如:

    var object = { obj1: [{ n1: "n", n2: 1, n3: true }, { n1: "n", n2: 1, n3: null }] };
    

    并查看结果,使用Json.stringify()

    console.log(JSON.stringify(object, (key, value) => value ? value.toString() : value));
    
  • 1

    您可以使用带有替换函数的JSON.stringify并检查值是否为数字,然后取一个弦乐值,或者只取值 .

    var object = { obj1: [{ n1: "n", n2: 1, n3: true }, { n1: "n", n2: 1, n3: null }] },
        json = JSON.stringify(object, (k, v) => v && typeof v === 'object' ? v : '' + v);
    
    console.log(json);
    console.log(JSON.parse(json));
    

相关问题