答案 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);
控制台输出:
答案 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.map
和Object.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;}]