谁能给我解释一下这个解析函数是如何工作的?
function parseFlickrJson(jsonstring){
var data=null;
var jsonFlickrApi=function(d){
data = d;
}
eval(jsonstring);
return data;
}
最佳答案
JSON 实际上是有效的 JavaScript。所以你需要“解码”它,就是将它作为 JavaScript 来评估(因此 eval
)。它还使用称为 JSONP http://en.wikipedia.org/wiki/JSONP 的东西。返回的不仅仅是 JSON。
JSONP 基本上是封装在函数调用中的 JSON。 JSONP 响应的内容可能是:
parseResponse({"Name": "Cheeso", Id : 1823, "Rank": 7})
这意味着当您评估 JSONP 时,它将尝试调用一个函数(在此示例中为 parseResponse
,在您的示例中为 jsonFlickrApi
)。这就是为什么必须在 eval(jsonstring)
发生之前定义 jsonFlickrApi
函数。
关于javascript - 解析 JSON 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5507355/