【问题标题】:Check for child key/value pairs in JSON检查 JSON 中的子键/值对
【发布时间】:2011-08-18 07:50:36
【问题描述】:

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

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

    {
        "name": "",
        "image": "",
        "description":"",
        "linkurl":""
        },
    "related" : [
    {
        "name": "",
        "image": "",
        "description":"",
        "linkurl":""
        },
    {
        "name": "",
        "image": "",
        "description":"",
        "linkurl":""
        }]
  ]

我如何确定这个 JSON 有那些子(“相关”)键/值对?

【问题讨论】:

标签: javascript jquery json


【解决方案1】:

将 JSON 字符串解析为 JavaScript 对象后(参见 greengit 的回答),您有三个选择:

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

IIRC,使用in应该是最快的

更新我记得相反 - in 是这样做的最慢​​方式,大幅度(98%!)。此外,使用typeof obj.key !== 'undefined'obj.key !== undefined 快得多(后者慢80%)。见http://jsperf.com/in-vs-not-undefined

【讨论】:

  • 我想让它成为最喜欢的答案... :(
【解决方案2】:

将JSON转成JS对象,看看你要的是不是undefined

var obj = JSON.parse(json_string);

if ( obj.related == undefined ) {
  ...

【讨论】:

    猜你喜欢
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多