ajax请求(存储在名为results
的变量中)将此数据作为响应返回:
Object {hits: Object, links: Object}
hits:Object
hits:Array(2)
0:Object
active:true
email:"user1@example.com"
id:1
links:Object
__proto__:Object
1:Object
active:true
email:"user2@example.com"
id:2
links:Object
__proto__:Object
length:2
__proto__:Array(0)
total:2
__proto__:Object
links:Object
__proto__:Object
它有哪种数据类型?我认为它是json但使用JSON.parse(results)
会返回此错误:
Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
如何访问其中的Array?我需要获取电子邮件地址和ID。它可能不相关,但我在ReactJS组件中使用它。
答案 0 :(得分:0)
根据您的回复,它已经是JSON对象了。
因此,如果您想访问 hits 属性,请输入以下代码:results.hits
。
你还提到了以下内容:
它识别出第一个命中,但不识别第二个命中。
您可以尝试console.log(results.hits)
并在此处分享输出吗?我猜你的响应对象只有一个 hits 属性,它的类型就是数组。
答案 1 :(得分:0)
观察:由于响应已经是JSON Object
,因此无需再次解析。
建议:使用array.map()方法迭代数组并获取所需的元素。
<强>样本强>
var results = {
"hits": {
"hits": [
{
active:true,
email:"user1@example.com",
id:1
},
{
active:true,
email:"user2@example.com",
id:2
}
]
},
"links": {}
};
var res = results.hits.hits.map(function(item) {
return item.email;
});
console.log(res);