在 Javascript 中获取 API 返回 [object, object]

1 javascript asynchronous fetch

所以我这里有这段代码,它从 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);  
})
Run Code Online (Sandbox Code Playgroud)

但是,它打印出:


[object Object] {
  address: [object Object] {
    city: "Lebsackbury",
    geo: [object Object] { ... },
    street: "Kattie Turnpike",
    suite: "Suite 198",
    zipcode: "31428-2261"
  },
Run Code Online (Sandbox Code Playgroud)

关于如何删除[object, object]并使其正常显示(与网址中相同)的任何想法?

Ala*_*lan 5

获取不返回[object object]。它正在按其应有的方式工作。

您所观察到的是嵌套对象工作方式的副产品console.log——它使用内置的“toString()”,它添加了一些额外的信息,例如类型。

这种行为与现代 Web 浏览器处理 JSON 文本的方式不同,后者只是以原始状态直接在浏览器窗口中显示它以及一些基本格式。

要获得您所期望的内容,请使用console.log(JSON.stringify(data));它将使用内置 JSON 字符串生成器。要添加更好的格式,您可以使用console.log(JSON.stringify(data,null,2));

但是,您将获取 JSON 响应,将其解析为一个对象,然后获取该对象并将其转换回 JSON 字符串。这很愚蠢。

由于 URL 返回 JSON 字符串,因此您可以直接通过控制台记录该 JSON 字符串。

就像是console.log(response.body);