【问题标题】:Best way to find whether a value exists in a JSON object in javascript?在javascript中查找JSON对象中是否存在值的最佳方法?
【发布时间】:2014-01-31 18:05:48
【问题描述】:

我有一个单一级别的 JSON 来搜索给定值的存在。 ecma5 中是否提供了一个紧凑的方法?

【问题讨论】:

    标签: javascript json ecmascript-5


    【解决方案1】:
    1. JSON.parse解析JSON字符串,得到一个JavaScript对象。

    2. 使用in操作符检查成员是否存在

      var jsObj = JSON.parse('{"p": 5}');
      console.log(jsObj);
      if ("p" in jsObj) {
          console.log("`p` exists");
      }
      

      输出

      { p: 5 }
      `p` exists
      

    【讨论】:

    • 有同样的想法,感谢您的澄清 - 只是想确保没有更多内容与此处的 json 添加 github.com/joyent/node/wiki/… 中指定的内容相同。
    • 问题是“查找 JSON 中是否存在值:”。接受的答案不是真的找到“是否存在某个键吗?”。
    【解决方案2】:

    用 JSON.parse 解析 JSON 字符串,得到一个 JavaScript 对象, 然后做

    最简单的检查,

    if(jsonObj['key']) {
    }
    

    Working fiddle

    【讨论】:

      【解决方案3】:

      由于听起来您正在寻找未知键中的特定值,假设您已经解析了 JSON,您将需要更多类似的东西:

      function valueExists(jsObj, value){
          for (var key in jsObj){
              if (jsObj[key] == value) return true;
          }
          return false;
      }
      

      【讨论】:

      • 是的,我只需要确认这是最有效的方法,其余的都是简单的逻辑,所以没关系 - 无论如何谢谢:)
      • 我不知道有什么更好的方法。其他人可能会。
      猜你喜欢
      • 2011-12-09
      • 2014-12-29
      • 2011-05-24
      • 2020-01-14
      • 2010-11-15
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多