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

Fetch API in Javascript returning [object, object]

所以我这里有这段代码,它从 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] 并使其正常显示,与 url 中的一样吗??

Fetch 不会 return [object object]。一切正常。

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

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

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

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

由于 URL return 是一个 JSON 字符串,您可以直接控制台记录该 JSON 字符串。

类似于console.log(response.body);