console.log returns "Object" 对于某些字段,而不是正文数据 [spotify-web-api-node]
console.log returns "Object" for some fields, instead of body data [spotify-web-api-node]
我正在使用 spotify-web-api-node,当我进行 api 调用时,returned 数据在控制台中看起来像这样:
Album information {
album_type: 'album',
artists: [
{
external_urls: [Object],
href: 'https://api.spotify.com/v1/artists/2hazSY4Ef3aB9ATXW7F5w3',
id: '2hazSY4Ef3aB9ATXW7F5w3',
name: 'IZAL',
type: 'artist',
uri: 'spotify:artist:2hazSY4Ef3aB9ATXW7F5w3'
}
],
...
label: 'Hook Ediciones Musicales',
name: 'Agujeros de Gusano',
popularity: 0,
release_date: '2014-01-25',
release_date_precision: 'day',
total_tracks: 13,
tracks: {
offset=0&limit=50',
items: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object]
],
limit: 50,
next: null,
offset: 0,
previous: null,
total: 13
},
type: 'album',
uri: 'spotify:album:5U4W9E5WsYb2jUQWePT8Xm'
}
如您所见,external_urls:
和(稍后的)items:
等字段具有 [Object]
returned,而不是实际数据。
该特定示例的 (node.js) 代码如下:
spotifyApi.getAlbum('5U4W9E5WsYb2jUQWePT8Xm')
.then(function(data) {
console.log('Album information',data.body);
}, function(err) {
console.error(err);
});
如果我将 console.log
中的 data.body
部分更改为 JSON.stringify(data.body)
它会好一些,因为它 return 数据,但作为一个字符串(显然) ,这不完全......可用:
Album information {"album_type":"album","artists":[{"external_urls":{"spotify":"https://open.spotify.com/artist/2hazSY4Ef3aB9ATXW7F5w3"},"href":"https://api.spotify.com/v1/artists/2hazSY4Ef3aB9ATXW7F5w3","id":"2hazSY4Ef3aB9ATXW7F5w3","name":"IZAL","type":"artist","uri":"spotify:artist:2hazSY4Ef3aB9ATXW7F5w3"}],"available_markets":[],"copyrights":[{"text":"2013 Hook Ediciones Musicales","type":"C"},{"text":"2013 Hook Ediciones Musicales","type":"P"}],
etc 等。也尝试了 JSON.parse(JSON.stringify(data.body))
但我得到与 console.log
.
相同的输出
如何在不丢失其格式的情况下获取字段的实际数据?
您可以使用 console.log(JSON.stringify(data.body, null, 2))
.
在树中打印 JSON 而不会像在 [Object] 中看到的那样丢失其内容。
根据@snak 的评论,我将 console.log
行更改为:
console.log('Album information',util.inspect(data.body, false, null, true));
似乎 return 一切正常,没有 [Object]
。
(确保包含 const util = require('util');
并使用 npm install util --save
安装它。)
我正在使用 spotify-web-api-node,当我进行 api 调用时,returned 数据在控制台中看起来像这样:
Album information {
album_type: 'album',
artists: [
{
external_urls: [Object],
href: 'https://api.spotify.com/v1/artists/2hazSY4Ef3aB9ATXW7F5w3',
id: '2hazSY4Ef3aB9ATXW7F5w3',
name: 'IZAL',
type: 'artist',
uri: 'spotify:artist:2hazSY4Ef3aB9ATXW7F5w3'
}
],
...
label: 'Hook Ediciones Musicales',
name: 'Agujeros de Gusano',
popularity: 0,
release_date: '2014-01-25',
release_date_precision: 'day',
total_tracks: 13,
tracks: {
offset=0&limit=50',
items: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object]
],
limit: 50,
next: null,
offset: 0,
previous: null,
total: 13
},
type: 'album',
uri: 'spotify:album:5U4W9E5WsYb2jUQWePT8Xm'
}
如您所见,external_urls:
和(稍后的)items:
等字段具有 [Object]
returned,而不是实际数据。
该特定示例的 (node.js) 代码如下:
spotifyApi.getAlbum('5U4W9E5WsYb2jUQWePT8Xm')
.then(function(data) {
console.log('Album information',data.body);
}, function(err) {
console.error(err);
});
如果我将 console.log
中的 data.body
部分更改为 JSON.stringify(data.body)
它会好一些,因为它 return 数据,但作为一个字符串(显然) ,这不完全......可用:
Album information {"album_type":"album","artists":[{"external_urls":{"spotify":"https://open.spotify.com/artist/2hazSY4Ef3aB9ATXW7F5w3"},"href":"https://api.spotify.com/v1/artists/2hazSY4Ef3aB9ATXW7F5w3","id":"2hazSY4Ef3aB9ATXW7F5w3","name":"IZAL","type":"artist","uri":"spotify:artist:2hazSY4Ef3aB9ATXW7F5w3"}],"available_markets":[],"copyrights":[{"text":"2013 Hook Ediciones Musicales","type":"C"},{"text":"2013 Hook Ediciones Musicales","type":"P"}],
etc 等。也尝试了 JSON.parse(JSON.stringify(data.body))
但我得到与 console.log
.
如何在不丢失其格式的情况下获取字段的实际数据?
您可以使用 console.log(JSON.stringify(data.body, null, 2))
.
在树中打印 JSON 而不会像在 [Object] 中看到的那样丢失其内容。
根据@snak 的评论,我将 console.log
行更改为:
console.log('Album information',util.inspect(data.body, false, null, true));
似乎 return 一切正常,没有 [Object]
。
(确保包含 const util = require('util');
并使用 npm install util --save
安装它。)