2

Windows 8 Metro アプリ用に WinJS で Flickr データ フィードを呼び出しています。JSON.parse を使用してフィード レスポンスを解析しようとすると、無効な文字エラーが発生します。これが私のコードです:

function processPhotos(result)
{
    var photoData = JSON.parse(result.responseText);
    //bind here
    data.items.forEach(function (item) {
        list.push(item);
    });
}

function processError(error) {
    console.log(error.message);
}

WinJS.xhr({ url: "http://api.flickr.com/services/feeds/photos_public.gne?format=json" }).then(processPhotos, processError);
WinJS.Namespace.define("data", {
    items: groupedItems,
    groups: groupedItems.groups,
    getItemsFromGroup: getItemsFromGroup
});

Result.ResponseText には期待されるコンテンツがあります。

他の誰かがこれに遭遇しますか?

4

2 に答える 2

4

responseText 内の無効な文字の一部をクリアするために、これを行う必要がありました。( https://stackoverflow.com/users/200698/devhammerによって提案されました)

var cleansed = result.responseText.replace(/\\'/g, "'");
var photoData = JSON.parse(cleansed).d;
于 2012-08-23T18:15:10.007 に答える
3

データを見ると、JSON ではなくJSONPであることがわかります。JSON.parse()それが処理できない理由です。ドキュメントによると、通常の JSONが必要な場合は、次を使用する必要がありますnojsoncallback=1

http://api.flickr.com/services/feeds/photos_public.gne?format=json&nojsoncallback=1
于 2012-03-13T09:30:21.740 に答える