![](/img/trans.png)
[英]How to iterate through a JSON schema and setting all the values to an empty string?
[英]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);
所以只要有“” - 空值替换为默认值“不可用”
以上不起作用。
你需要对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.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");
产量
[{“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.