检查JSON中的子键/值对

ami*_*mit 1 javascript jquery json

我需要确定我的JSON提要是否具有子键/值对并以不同方式处理它们.我的意思是:

{ 
    "dashboard" :[
    {
        "name": "",
        "image": "",
        "description":"",
        "linkurl":"" },

    {
        "name": "",
        "image": "",
        "description":"",
        "linkurl":""
        },
    "related" : [
    {
        "name": "",
        "image": "",
        "description":"",
        "linkurl":""
        },
    {
        "name": "",
        "image": "",
        "description":"",
        "linkurl":""
        }]
  ]
Run Code Online (Sandbox Code Playgroud)

我如何识别此JSON具有那些子("相关")键/值对?

she*_*sek 6

在将JSON字符串解析为JavaScript对象后(请参阅greengit的答案),您有三个选项:

  • typeof obj.related !== 'undefined'
  • obj.related !== undefined.使用undefined变量时要小心,可以通过其他脚本进行更改.如果您正在使用它,请确保将代码包装在匿名函数中,并将其设置为正确的值 - 请参阅Javascript Garden,在"处理对undefined值的更改"下
  • 'related' in obj

IIRC,使用in应该是最快的

更新我记得它的另一种方式 - 这in最慢的方式,大幅度(98%!).此外,使用typeof obj.key !== 'undefined'速度比obj.key !== undefined(后者慢80%)快得多.请参见http://jsperf.com/in-vs-not-undefined.