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

时间:2015-07-02 12:30:14

标签: javascript jquery json

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

因此,无论哪里有“” - 空值替换为默认值“不可用”

以上不起作用。

JSFIDDLE here

3 个答案:

答案 0 :(得分:7)

您需要替换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);

控制台输出:

enter image description here

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

您可以使用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");

<强>输出

  

[{&#34; machineNum&#34;:&#34; 1A&#34;&#34;的SerialNo&#34;:&#34; 123&#34;&#34;城市&#34 ;: &#34;不可用&#34;},{&#34; machineNum&#34;:&#34; 2B&#34;,&#34; serialNo&#34;:&#34;不可用&#34;,& #34; city&#34;:&#34; Not Available&#34;},{&#34; machineNum&#34;:&#34; 3A&#34;,&#34; serialNo&#34;:&#34 ; 123&#34;&#34;城市&#34;:&#34; NewCity&#34;}]