Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Spotify json响应是否包含新行字符?_Javascript_Json_Http_Meteor_Spotify - Fatal编程技术网

Javascript Spotify json响应是否包含新行字符?

Javascript Spotify json响应是否包含新行字符?,javascript,json,http,meteor,spotify,Javascript,Json,Http,Meteor,Spotify,我正在使用Meteors http使用Spotify API搜索曲目。我的问题是,当服务器获取Json文件时,文件中有新行字符,因此我无法解析它。我找到了一个逃避新行字符的方法,但我怀疑一定有更好的方法 我的HTTP呼叫 function artFromSpotify(title, artist, album){ var qString = 'artist:' + artist + ' track:' + title; var result = HTTP.call("GET", 'htt

我正在使用Meteors http使用Spotify API搜索曲目。我的问题是,当服务器获取Json文件时,文件中有新行字符,因此我无法解析它。我找到了一个逃避新行字符的方法,但我怀疑一定有更好的方法

我的HTTP呼叫

function artFromSpotify(title, artist, album){
  var qString = 'artist:' + artist + ' track:' + title;
  var result = HTTP.call("GET", 'https://api.spotify.com/v1/search?'+qString, {
    params: {'q': qString,
      'type' : 'track',
      'limit' :'1'}
    });   
content: '{\n  "tracks" : {\n    "href" : "https://api.spotify.com/v1/search?query=artist%3AElton+John+track%3ARocket+Man&offset=0&limit=1&type=track",\n    "items" : [ {\n      "album" : {\n        "album_type" : "album",\n        "available_markets" : [ "AD", "AR", "AT", "AU", "BE", "BG", "BO", "BR", "CH", "CL", "CO", "CR", "CY", "CZ", "DE", "DK", "DO", "EC", "EE", "ES", "FI", "FR", "GB", "GR", "GT", "HK", "HN", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MC", "MT", "MY", "NI", "NL", "NO", "NZ", "PA", "PE", "PH", "PL", "PT", "PY", "RO", "SE", "SG", "SI", "SK", "SV", "TR", "TW", "UY" ],\n        "external_urls" : {\n          "spotify" : "https://open.spotify.com/album/46g6b33tbttcPtzbwzBoG6"\n        },\n        "href" : "https://api.spotify.com/v1/albums/46g6b33tbttcPtzbwzBoG6",\n        "id" : "46g6b33tbttcPtzbwzBoG6",\n        "images" : [ {\n          "height" : 634,\n          "url" : "https://i.scdn.co/image/07039e8a1fcd1fda967a021e8c4d5ccaf5dbaa8d",\n          "width" : 640\n        }, {\n          "height" : 297,\n          "url" : "https://i.scdn.co/image/e62555a039122c4c26ea7fb738e705f1de1795d2",\n          "width" : 300\n        }, {\n          "height" : 63,\n          "url" : "https://i.scdn.co/image/c3581519b056a17b9056fa579536e9788868464d",\n          "width" : 64\n        } ],\n        "name" : "Honky Chateau (Remastered)",\n        "type" : "album",\n        "uri" : "spotify:album:46g6b33tbttcPtzbwzBoG6"\n      },\n      "artists" : [ {\n        "external_urls" : {\n          "spotify" : "https://open.spotify.com/artist/3PhoLpVuITZKcymswpck5b"\n        },\n        "href" : "https://api.spotify.com/v1/artists/3PhoLpVuITZKcymswpck5b",\n        "id" : "3PhoLpVuITZKcymswpck5b",\n        "name" : "Elton John",\n        "type" : "artist",\n        "uri" : "spotify:artist:3PhoLpVuITZKcymswpck5b"\n      } ],\n      "available_markets" : [ "AD", "AR", "AT", "AU", "BE", "BG", "BO", "BR", "CH", "CL", "CO", "CR", "CY", "CZ", "DE", "DK", "DO", "EC", "EE", "ES", "FI", "FR", "GB", "GR", "GT", "HK", "HN", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MC", "MT", "MY", "NI", "NL", "NO", "NZ", "PA", "PE", "PH", "PL", "PT", "PY", "RO", "SE", "SG", "SI", "SK", "SV", "TR", "TW", "UY" ],\n      "disc_number" : 1,\n      "duration_ms" : 281613,\n      "explicit" : false,\n      "external_ids" : {\n        "isrc" : "GBAMB7200006"\n      },\n      "external_urls" : {\n        "spotify" : "https://open.spotify.com/track/2zvot9pY2FNl1E94kc4K8M"\n      },\n      "href" : "https://api.spotify.com/v1/tracks/2zvot9pY2FNl1E94kc4K8M",\n      "id" : "2zvot9pY2FNl1E94kc4K8M",\n      "name" : "Rocket Man (I Think It\'s Going To Be A Long Long Time)",\n      "popularity" : 65,\n      "preview_url" : "https://p.scdn.co/mp3-preview/e0f814581fb0c9f5faeb02146aa4c1280510b4f3",\n      "track_number" : 5,\n      "type" : "track",\n      "uri" : "spotify:track:2zvot9pY2FNl1E94kc4K8M"\n    } ],\n    "limit" : 1,\n    "next" : "https://api.spotify.com/v1/search?query=artist%3AElton+John+track%3ARocket+Man&offset=1&limit=1&type=track",\n    "offset" : 0,\n    "previous" : null,\n    "total" : 54\n  }\n}'
Spotify JSON响应

function artFromSpotify(title, artist, album){
  var qString = 'artist:' + artist + ' track:' + title;
  var result = HTTP.call("GET", 'https://api.spotify.com/v1/search?'+qString, {
    params: {'q': qString,
      'type' : 'track',
      'limit' :'1'}
    });   
content: '{\n  "tracks" : {\n    "href" : "https://api.spotify.com/v1/search?query=artist%3AElton+John+track%3ARocket+Man&offset=0&limit=1&type=track",\n    "items" : [ {\n      "album" : {\n        "album_type" : "album",\n        "available_markets" : [ "AD", "AR", "AT", "AU", "BE", "BG", "BO", "BR", "CH", "CL", "CO", "CR", "CY", "CZ", "DE", "DK", "DO", "EC", "EE", "ES", "FI", "FR", "GB", "GR", "GT", "HK", "HN", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MC", "MT", "MY", "NI", "NL", "NO", "NZ", "PA", "PE", "PH", "PL", "PT", "PY", "RO", "SE", "SG", "SI", "SK", "SV", "TR", "TW", "UY" ],\n        "external_urls" : {\n          "spotify" : "https://open.spotify.com/album/46g6b33tbttcPtzbwzBoG6"\n        },\n        "href" : "https://api.spotify.com/v1/albums/46g6b33tbttcPtzbwzBoG6",\n        "id" : "46g6b33tbttcPtzbwzBoG6",\n        "images" : [ {\n          "height" : 634,\n          "url" : "https://i.scdn.co/image/07039e8a1fcd1fda967a021e8c4d5ccaf5dbaa8d",\n          "width" : 640\n        }, {\n          "height" : 297,\n          "url" : "https://i.scdn.co/image/e62555a039122c4c26ea7fb738e705f1de1795d2",\n          "width" : 300\n        }, {\n          "height" : 63,\n          "url" : "https://i.scdn.co/image/c3581519b056a17b9056fa579536e9788868464d",\n          "width" : 64\n        } ],\n        "name" : "Honky Chateau (Remastered)",\n        "type" : "album",\n        "uri" : "spotify:album:46g6b33tbttcPtzbwzBoG6"\n      },\n      "artists" : [ {\n        "external_urls" : {\n          "spotify" : "https://open.spotify.com/artist/3PhoLpVuITZKcymswpck5b"\n        },\n        "href" : "https://api.spotify.com/v1/artists/3PhoLpVuITZKcymswpck5b",\n        "id" : "3PhoLpVuITZKcymswpck5b",\n        "name" : "Elton John",\n        "type" : "artist",\n        "uri" : "spotify:artist:3PhoLpVuITZKcymswpck5b"\n      } ],\n      "available_markets" : [ "AD", "AR", "AT", "AU", "BE", "BG", "BO", "BR", "CH", "CL", "CO", "CR", "CY", "CZ", "DE", "DK", "DO", "EC", "EE", "ES", "FI", "FR", "GB", "GR", "GT", "HK", "HN", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MC", "MT", "MY", "NI", "NL", "NO", "NZ", "PA", "PE", "PH", "PL", "PT", "PY", "RO", "SE", "SG", "SI", "SK", "SV", "TR", "TW", "UY" ],\n      "disc_number" : 1,\n      "duration_ms" : 281613,\n      "explicit" : false,\n      "external_ids" : {\n        "isrc" : "GBAMB7200006"\n      },\n      "external_urls" : {\n        "spotify" : "https://open.spotify.com/track/2zvot9pY2FNl1E94kc4K8M"\n      },\n      "href" : "https://api.spotify.com/v1/tracks/2zvot9pY2FNl1E94kc4K8M",\n      "id" : "2zvot9pY2FNl1E94kc4K8M",\n      "name" : "Rocket Man (I Think It\'s Going To Be A Long Long Time)",\n      "popularity" : 65,\n      "preview_url" : "https://p.scdn.co/mp3-preview/e0f814581fb0c9f5faeb02146aa4c1280510b4f3",\n      "track_number" : 5,\n      "type" : "track",\n      "uri" : "spotify:track:2zvot9pY2FNl1E94kc4K8M"\n    } ],\n    "limit" : 1,\n    "next" : "https://api.spotify.com/v1/search?query=artist%3AElton+John+track%3ARocket+Man&offset=1&limit=1&type=track",\n    "offset" : 0,\n    "previous" : null,\n    "total" : 54\n  }\n}'
result
现在将包含不带换行符的json字符串

然而,在大多数情况下,您实际上需要的是来自
JSON.parse(res.content)
的结果

HTTP.get(query, function(err, res){
  result = JSON.parse(res.content).tracks
})

现在,
result
是一个可以使用的对象。

为什么在解析它时遇到问题?换行符在JSON中是完全有效的(只要它们不在字符串值内,在这种情况下它们确实需要转义)。解析它应该没有问题,但如果不想处理换行符,可以使用一个包,例如为您调用You guys is correct/n不是问题。我没有正确使用点符号。