繁体   English   中英

JSON使用默认字符串替换所有空值

[英]JSON replace all empty values with a default string

JSON有许多空值,我想用空字符串替换空值。

var json= [
{
    "machineNum": "1A",
    "serialNo": "123",
    "city": ""
},
{
    "machineNum": "2B",
    "serialNo": "",
    "city": ""
},
{
    "machineNum": "3A",
    "serialNo": "123",
    "city": "NewCity"
}
]

 var newJson=json.replace("","Not AVailable");
 console.log(newJson);

所以只要有“” - 空值替换为默认值“不可用”

以上不起作用。

JSFIDDLE在这里

你需要对json字符串进行替换而不是javascript对象。 你也不是在寻找""你在寻找"\\"\\""

var json= [
{
    "machineNum": "1A",
    "serialNo": "123",
    "city": ""
},
{
    "machineNum": "2B",
    "serialNo": "",
    "city": ""
},
{
    "machineNum": "3A",
    "serialNo": "123",
    "city": "NewCity"
}
]
var temp = JSON.stringify(json);
temp = temp.replace(/\"\"/g, "\"Not Available\"");
json = JSON.parse(temp);
console.log(json);

控制台输出:

在此输入图像描述

如果您不想对json进行字符串化/重新分析,则可以遍历数组和数组中对象的每个属性。

json.forEach(function (machine) {
    Object.keys(machine).forEach(function (key) {
        if (machine[key] === '' && machine.hasOwnProperty(key)) machine[key] = 'Not Available';
    });
});

您可以将Array.prototype.mapObject.keys一起使用,以确保所有具有空值的键值对都使用默认字符串。 请参阅下面的简单示例:

function replaceEmpty(json, defaultStr){
    return json.map(function (el){
        Object.keys(el).forEach(function(key){
            el[key] = el[key] || defaultStr;
        });
        return el;
    });
}

var result = replaceEmpty(json,"Not Available");

产量

[{“machineNum”:“1A”,“serialNo”:“123”,“city”:“Not Available”},{“machineNum”:“2B”,“serialNo”:“Not Available”,“city”: “Not Available”},{“machineNum”:“3A”,“serialNo”:“123”,“city”:“NewCity”}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM