所以我这里有这个代码,它从URL调用并在控制台中显示数组
fetch('http://jsonplaceholder.typicode.com/users')
.then(
function(response) {
if (response.status !== 200) {
console.log('Looks like there was a problem');
return;
}
response.json().then(function(data){
console.log(data);
});
}
)
.catch(function(err) {
console.log('Fetch Error', err);
})
然而,打印出来:
[object Object] {
address: [object Object] {
city: "Lebsackbury",
geo: [object Object] { ... },
street: "Kattie Turnpike",
suite: "Suite 198",
zipcode: "31428-2261"
},
有关如何删除[object, object]
并让它正常显示的想法,与网址相同吗?
答案 0 :(得分:2)
获取不会返回[object object]
。它的工作方式应该如此。
您所观察到的是console.log
如何处理嵌套对象的副产品 - 它使用内置的“toString()”,它会添加一些额外的信息,例如类型。
这种行为与现代Web浏览器处理JSON文本的方式不同,JSON文本只是直接在浏览器窗口中以原始状态显示它,以及一些基本格式。
要获得您期望的内容,请使用将使用内置JSON字符串化器的console.log(JSON.toString(data));
。要添加更好的格式,您可以使用console.log(JSON.toString(data,null,2));
但是,您正在接受JSON响应,将其解析为对象,然后将该对象转换回JSON字符串。这很傻。
由于URL返回一个JSON字符串,您可以直接控制该JSON字符串的记录。
像console.log(response.body);