有没有办法将JSONP格式转换为JSON?

时间:2012-04-23 05:24:46

标签: android jsonp

我正在尝试解析来自服务器的响应,我是这个主题的新手,不幸的是它是JSONP格式。我不知道如何解析JSONP格式,当我尝试使用JSON Parser时,它返回null值。 任何人都可以帮我这样做......

先谢谢。

1 个答案:

答案 0 :(得分:21)

JSONP只是JSON包装在JavaScript函数调用中。例如,像:

callback({"status":"success", "someVar":1});

所以你有几个选择。如果您使用的是WebView,则可以在JavaScript中定义名为callback的函数,然后只需在JSONP数据上调用eval()即可。这将调用callback函数,并将解析后的JSON对象传递给它(eval()为您解析)。

或者,如果您的Java代码中有JSONP字符串,最简单的选项可能是提取出JSON子字符串,如:

String json = jsonp.substring(jsonp.indexOf("(") + 1, jsonp.lastIndexOf(")"));

这将剥离callback();,只留下{"status":"success", "someVar":1},然后应该使用任何标准JSON解析器进行解析。