Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将所有json值转换为字符串而无需迭代_Javascript_Json - Fatal编程技术网

Javascript 如何将所有json值转换为字符串而无需迭代

Javascript 如何将所有json值转换为字符串而无需迭代,javascript,json,Javascript,Json,我有JSON,其中所有值都必须更改为字符串。这些值可以是数字、布尔值、未定义值或空值 { "obj1": [{ "n1": "n", "n2": 1, "n3": true }, { "n1": "n", "n2": 1, "n3": null }] } 预期结果是所有值都应格式化为字符串 示例: { "obj1": [{ "n1": "n",

我有JSON,其中所有值都必须更改为字符串。这些值可以是数字、布尔值、未定义值或空值

{
    "obj1": [{
        "n1": "n",
        "n2": 1,
        "n3": true
    },
    {
        "n1": "n",
        "n2": 1,
        "n3": null
    }]
}
预期结果是所有值都应格式化为
字符串

示例:

{
    "obj1": [{
        "n1": "n",
        "n2": "1",
        "n3": "true"
    },
    {
        "n1": "n",
        "n2": "1",
        "n3": "null"
    }]
}
通过迭代JSON对象,我们可以做到这一点,但有没有更简单的方法可以做到这一点。

您可以使用replacer函数检查值是否为数字,然后获取字符串值,或者仅获取值

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);
log(json);
log(JSON.parse(JSON))您可以使用

例如:

var object = { obj1: [{ n1: "n", n2: 1, n3: true }, { n1: "n", n2: 1, n3: null }] };
要查看结果,请使用Json.stringify()


“没有迭代”是什么意思?一些迭代是需要的,隐藏的或明确的。你说你有JSON,所以我们谈论的是一个大字符串,对吗?我知道它背后需要迭代,但它背后的任何更简单的工作方式
console.log(JSON.stringify(object, (key, value) => value ? value.toString() : value));
const obj = {
    "obj1": [{
        "n1": "n",
        "n2": 1,
        "n3": true
    }, {
        "n1": "n",
        "n2": 1,
        "n3": null
    }]
};
const text = JSON.stringify(obj)
const newObj = text.replace(/:([^"[{][0-9A-Za-z]*)([,\]\}]?)/g, ':\"$1\"$2')
console.log(newObj);
/*
{"obj1":[{"n1":"n","n2":"1","n3":"true"},{"n1":"n","n2":"1","n3":"null"}]}
*/

// Em, let's format it
console.log(JSON.stringify(JSON.parse(newObj), null, 2));
/*
{
  "obj1": [
    {
      "n1": "n",
      "n2": "1",
      "n3": "true"
    },
    {
      "n1": "n",
      "n2": "1",
      "n3": "null"
    }
  ]
}
*/