如何检查 JSON 对象键是对象还是字符串?

20 浏览
0 Comments

如何检查 JSON 对象键是对象还是字符串?

这个问题已经有答案了

在JavaScript中检查一个值是否为对象

在JavaScript中检查一个变量是否为字符串

所以现在,我创建了一个JSON对象的例子,其中:

var myObj = {
    address: {
        0: ["41 Lake Avenue"]
    },
    name: "jake"
}

myObj本身是一个JSON对象,在它内部,我有两个键,分别是地址和名称。因此,地址键的值也是一个对象,因为它在大括号内,而名称键的值只是一个字符串

我想在javascript中编写一个简单的检查,以检查我的myObj中的是一个对象还是一个字符串。因此,如果它是一个对象,它将返回true,而如果它不是对象,它将返回false。因此,对于地址,它将是true,而对于名称,它将是false。

我尝试寻找一些类似于isArray()的isObject()方法,但显然我找不到,所以我需要一些帮助,下面是我写的伪代码:

for (i=0;i<2;i++) {
   if myObj[i] is Object {
      return true;}
   else{
      return false;}
}

admin 更改状态以发布 2023年5月22日
0
0 Comments

if (typeof varible === 'object') {
    // is object
}

但是Null也被识别为对象。因此,你也可以证明这一点。

0
0 Comments

你可以使用 typeof

注意:问题不够清晰,没有解释如果有多个键的值是对象会发生什么。因为下面的函数在遇到一个值为对象的键时就会返回。

var myObj = {
  address: {
    0: ["41 Lake Avenue"]
  },
  name: "jake"
}
function isObject(obj) {
  for (let keys in obj) {
    if (typeof obj[keys] === 'object' && obj[keys] !== null) {
      return true
    }
  }
}
console.log(isObject(myObj))

0