我希望有人提供以下指导:
我正在使用类似的东西获取JSON:
$.getJSON(jsonPath, function(returnedData){
...
});
返回的对象看起来像这样:
...
"skin": {
"elapsedTextColor": "#ffffff",
"autoHideControls": "false",
"autoplay": "false",
"muted": "false",
...
}
我使用这样的数据:
...
skin : {
screenLogoImage : skinData['skinconfig'][0]['skin'].screenLogoImage,
screenLogoUrl : skinData['skinconfig'][0]['skin'].screenLogoUrl,
...
},
当JSON中不存在该值时,设置值为“undefined”。
如果JSON中不存在该值,是否有办法返回空值?
例如,如果在JSON中没有定义screenLogoImage,我该如何获取
skinData['skinconfig'][0]['skin'].screenLogoImage
返回空(以便使用配置的库忽略它并使用该属性的默认值)?
非常感谢任何指导。
答案 0 :(得分:1)
您可以使用||
OR
运算符
skin : {
screenLogoImage : skinData['skinconfig'][0]['skin'].screenLogoImage || settings.screenLogoImage,
screenLogoUrl : skinData['skinconfig'][0]['skin'].screenLogoUrl || settings.screenLogoUrl,
...
}
或for..in
循环
var data = {... screenLogoImage: undefined};
var settings = {screenLogoImage:"/path/to/resource/"}
for (var key in data) {
if (data[key] === undefined) data[key] = settings[key]
}
skin : {
screenLogoImage : skinData['skinconfig'][0]['skin'].screenLogoImage,
screenLogoUrl : skinData['skinconfig'][0]['skin'].screenLogoUrl,
...
}
答案 1 :(得分:0)
如果要在定义可能未定义的内容时给出后备,则可以使用or运算符。
var screenLogoImage = skinData['skinconfig'][0]['skin'].screenLogoImage || "";
在这种情况下,如果它未定义(或false
),则它将是空字符串而不是未定义。