如何检查 JSON 对象键是对象还是字符串? [复制]
Posted
技术标签:
【中文标题】如何检查 JSON 对象键是对象还是字符串? [复制]【英文标题】:How to check whether a JSON object key is an object or string? [duplicate] 【发布时间】:2021-02-28 08:57:32 【问题描述】:所以现在,我创建了一个 JSON 对象的示例,其中:
var myObj =
address:
0: ["41 Lake Avenue"]
,
name: "jake"
myObj 本身作为一个整体是一个 JSON 对象,在其中,我有两个键,分别是地址和名称。所以 address key 的值也是一个 Object,因为它在大括号中,其中 name key 值只是一个字符串。
我想在 javascript 中写一个简单的检查来检查 myObj 中的 keys 是否是对象或字符串。因此,如果它的一个对象,它返回true,如果它的不是一个对象,它返回false。因此,地址为真,姓名为假。
我试着四处寻找类似于 isArray() 的 isObject() 方法,但显然我找不到,所以我需要一些帮助,所以我在下面写了一个伪代码用于逻辑:
for (i=0;i<2;i++)
if myObj[i] is Object
return true;
else
return false;
【问题讨论】:
你可以使用typeof
来检查它是否是字符串。
我是新来的,很少用 JS 编程,但 wtf 是这些 cmets 和答案。你做错了整个事情。用于for (k in myObj) console.log(typeof(myObj[k]) == 'string');
typeof 运算符返回一个字符串,表示未计算的操作数的类型:for (let [key, value] of Object.entries(myObj)) if( value && typeof value =='object')return true; else return false;
【参考方案1】:
您需要使用 typeof(var) 运算符: https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Operators/typeof
对象:
typeof yourVariable === 'object' && yourVariable !== null
对于字符串:
typeof yourVariable === 'string'
【讨论】:
【参考方案2】:if (typeof varible === 'object')
// is object
但 Null 也被识别为对象。所以你也可以证明这一点。
【讨论】:
【参考方案3】:您可以使用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))
【讨论】:
我认为使用for (let [key,value] of Object.entries(myObj))
会更好,因为他获得了属性名称。 example here
在 for 循环之后也可能是 return false
;) ?以上是关于如何检查 JSON 对象键是对象还是字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
当 JSON 字段键是日期时,如何将 JSON 对象解组为 Golang 结构?
如何检查获取的响应是不是是javascript中的json对象