2

我在 WinJS 中为 Windows 8 Metro 应用程序调用 Flickr 数据馈送。当我尝试使用 JSON.parse 解析提要响应时,我收到了 Invalid Character 错误。这是我的代码:

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 回答