我需要确定我的JSON Feed是否具有子键/值对并以不同方式处理它们。我的意思是:
{
"dashboard" :[
{
"name": "",
"image": "",
"description":"",
"linkurl":"" },
{
"name": "",
"image": "",
"description":"",
"linkurl":""
},
"related" : [
{
"name": "",
"image": "",
"description":"",
"linkurl":""
},
{
"name": "",
"image": "",
"description":"",
"linkurl":""
}]
]
我如何识别此JSON具有那些子(“相关”)键/值对?
答案 0 :(得分:6)
将JSON字符串解析为JavaScript对象后(请参阅greengit的答案),您有三个选择:
typeof obj.related !== 'undefined'
obj.related !== undefined
。使用undefined
变量时要小心,可以通过其他脚本进行更改。如果您正在使用它,请确保将代码包装在匿名函数中,并将其设置为正确的值 - 请参阅Javascript Garden,在“处理对未定义值的更改”下'related' in obj
in
应该是最快的
更新我反而记得 - in
是最慢这样做的方式,大幅度(98%!)。此外,使用typeof obj.key !== 'undefined'
要比obj.key !== undefined
快得多(后者慢80%)。请参阅http://jsperf.com/in-vs-not-undefined。
答案 1 :(得分:2)
将JSON转换为JS对象,看看你想要的是undefined
。
var obj = JSON.parse(json_string);
if ( obj.related == undefined ) {
...