记录 JSON 正文有效,但 body.item 无效。给出未定义

Logging JSON body works, but not body.item. Gives undefined

此函数使用 Spotify API 创建播放列表。哪个 returns 包含我需要的 'id' 的正文。

function createPlaylist(pc) {
    let index = partyCodeExists(pc)
    let at = token_arr[index]
    let userID = user_ids[index]
    var authOptions = {
        url: 'https://api.spotify.com/v1/users/' + userID + '/playlists',
        body: JSON.stringify({
            'name': pc,
            'description': 'Jukibox playlist',
            'public': false
        }),
        dataType: 'json',
        headers: {
            'Authorization': 'Bearer ' + at,
            'Content-Type': 'application/json'
        }
    };
    request.post(authOptions, function (error, response, body) {
        console.log(body);
        console.log(body.id);
    });
};

较低的控制台日志给出以下输出:

{
    "collaborative" : false,
    "description" : null,
    "external_urls" : {
        "spotify" : "https://open.spotify.com/user/larsonadam-us/playlist/5pZ3C6ZRB3C9Tv9Z3EdA0g"
    },
    "followers" : {
        "href" : null,
        "total" : 0
    },
    "href" : "https://api.spotify.com/v1/users/larsonadam-us/playlists/5pZ3C6ZRB3C9Tv9Z3EdA0g",
    "id" : "5pZ3C6ZRB3C9Tv9Z3EdA0g",
    "images" : [ ],
    "name" : null,
    "owner" : {
        "display_name" : null,
        "external_urls" : {
            "spotify" : "https://open.spotify.com/user/larsonadam-us"
        },
        "href" : "https://api.spotify.com/v1/users/larsonadam-us",
        "id" : "larsonadam-us",
        "type" : "user",
        "uri" : "spotify:user:larsonadam-us"
    },
    "primary_color" : null,
    "public" : true,
    "snapshot_id" : "90UhGQhCi0Xq2vch8g/wrQ5BZoKK5cmIkiwybqJLUIsEAljI+L90YPzpD59T8zwP",
    "tracks" : {
        "href" : "https://api.spotify.com/v1/users/larsonadam-us/playlists/5pZ3C6ZRB3C9Tv9Z3EdA0g/tracks",
        "items" : [ ],
        "limit" : 100,
        "next" : null,
        "offset" : 0,
        "previous" : null,
        "total" : 0
    },
    "type" : "playlist",
    "uri" : "spotify:user:larsonadam-us:playlist:5pZ3C6ZRB3C9Tv9Z3EdA0g"
}
undefined

为什么第二个选项显示undefined?

另外请注意,我有正文解析器,它适用于代码的其他区域

问题是 return 是一个字符串。在获取 ID 之前,您需要处理 return。试试这个。

console.log(body) 
let bodyObject = JSON.parse(body) 
console.log(bodyObject.id)