为了账号安全,请及时绑定邮箱和手机立即绑定

javascript:检查 Json 上的多个嵌套属性

javascript:检查 Json 上的多个嵌套属性

智慧大石 2022-05-14 13:40:13
我有一个 JSON,我想检查它是否具有以下属性:json.prop1.prop2.prop3这个方法可以检查一个属性:json.hasOwnProperty("prop1")有什么东西可以用来同时检查所有的 prop1、prop2、prop3 吗?
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

使用Babel Optional Chaining插件,您可以做到这一点


 json?.prop1?.prop2?.prop3 

这类似于


 json && json.prop1 && json.prop1.props2 && json.prop1.props2.prop3 

使用可选链接的示例


const obj = {

  foo: {

    bar: {

      baz: 42,

    },

  },

};


const baz = obj?.foo?.bar?.baz; // 42


const safe = obj?.qux?.baz; // undefined


// Optional chaining and normal chaining can be intermixed

obj?.foo.bar?.baz; // Only access `foo` if `obj` exists, and `baz` if

                   // `bar` exists


// Example usage with bracket notation:

obj?.['foo']?.bar?.baz // 42


查看完整回答
反对 回复 2022-05-14
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您还可以使用 lodash get 函数来检查嵌套对象


https://lodash.com/docs/4.17.15#get


const json = {

  prop1: {

    prop2: {

      prop3: "you are here"

    }

  }

}


console.log(_.get(json, "prop1.prop2.prop3"));

console.log(_.get(json, "prop1.prop3.prop3"));

console.log(_.get(json, "prop1.prop3.prop3", "Default value"));

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>


查看完整回答
反对 回复 2022-05-14
?
BIG阳

TA贡献1859条经验 获得超6个赞

json["prop1"]["prop2"]["prop3"] 或使用 json?.prop1?.prop2?.prop3



查看完整回答
反对 回复 2022-05-14
  • 3 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信