解析JSON函数

时间:2011-03-31 22:56:35

标签: javascript

有人可以向我解释这个解析函数究竟是如何工作的吗?

function parseFlickrJson(jsonstring){
    var data=null;

    var jsonFlickrApi=function(d){
        data = d;
    }

    eval(jsonstring);

    return data;
}

1 个答案:

答案 0 :(得分:7)

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)。这就是必须在jsonFlickrApi发生之前定义eval(jsonstring)函数的原因。