讓我重新提出我的問題。我需要從Last.FM解析JSON數據。這個數據可以根據查找的成功而改變,這意味着我的JSONP節點可以不同於一個搜索到另一個搜索。問題是如果我查找一個不存在的節點,整個查找失敗,並且我將鬆散JSON對象中的所有數據。我不知道如何捕獲這種錯誤,並在錯誤發生後繼續遍歷JSON數據。如何在JSON數據中捕獲解析錯誤
/********** Last FM Scrobbler - get album JSON details ***********/
function refreshArtwork(artist, track) {
$.ajax({
type: 'GET',
url: 'http://ws.audioscrobbler.com/2.0/',
data: {
method: 'track.getInfo',
api_key: 'c88cc53549bec0e9f246f056dc05a745',
artist: artist,
track: track,
format: 'json',
},
dataType: 'jsonp', //must be JSONP for CORS
error: lstError,
success: getLastfm
});
}
/* success: parse album XML from LastFM scrobbler */
function getLastfm(json) {
//alert(json.track.wiki.summary); // wiki summary
var lstArtist = (json.track.artist['name']); // artist
var lstTitle = (json.track.name); // Title
var lstAlbumart = (json.track.album.image[3]['#text']);// 0=small, 1=medium, 2=large, 3=xlarge
//var listWikis = (json.track.wiki.summary); // WIKI summary
var lstAlbum = (json.track.album.title); // album
// if no artist info then error in name
if (lstArtist ===null) {
$('#response').append('<li style="color:red">' + 'No Artist Match on Last.FM!' + '</li>');
lstError();
}
// if no album art info then error in album URL
if (lstAlbumart ===null) {
$('#response').append('<li style="color:red">' + 'No Album Art URL Match on Last.FM!' + '</li>');
lstError();
}
例如,如果JSON數據中缺少相冊標題,我無法進入任何其他節點。 lstTitle =(json.track.name);如果其他人失蹤不起作用。
感謝看起來像我一直在尋找...如何測試一個節點,看看它之前,它打破了整個JSON我認爲我是在一個趕上22時刻! – hillcreative