gpt4 book ai didi

javascript - 如何识别 JSON 中的匿名类型?

转载 作者:行者123 更新时间:2023-11-28 13:53:34 25 4
gpt4 key购买 nike

我正在 Javascript 上编写一个函数,它需要处理 JSON 对象中的所有任意类型。

例如,

Typed=  {
emails: [{email:'a@a.com'}, {email:'b@a.com'}, {email:'c@a.com'}, {email:'d@a.com'}]
};

是 JSON 中类型化数组的示例,因为数组中的每个元素的类型都是 email

同时,

Anon=  {
emails: ['a@a.com', 'b@a.com', 'c@a.com', 'd@a.com']
};

是一个 JSON 对象,其中 emails 是一些匿名对象的集合。

有什么方法可以区分 JQuery 或 Javascript 中的两者吗?

最佳答案

最简单的解决方案是让 JSON 源仅返回两种形式之一。那么您就不必在客户端中进行分支。

如果这不是一个选项,您可以使用 JavaScript 方便的 bool 表达式延迟求值来获取值:

var em = json.emails[0].email || json.emails[0];

该语句更喜欢对象数组版本,但使用字符串数组版本作为后备。

(为了回应下面的澄清评论而编辑)

您可以像这样确定 JS 对象在运行时具有哪些属性:

function enumerate(targetObject){
var props = [];
for (var propName in targetObject ){
props.push(propName);
}
return props;
}

console.log(enumerate({foo:1, bar:'baz'}),join(',')); //"foo, bar"

然后您可以根据返回的属性调整您的逻辑。您还需要确保了解原型(prototype)(特别是 Object.hasOwnProperty 的作用和含义)。

关于javascript - 如何识别 JSON 中的匿名类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com