16

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

提前致谢。

4

1 回答 1

23

JSONP只是封装在 JavaScript 函数调用中的 JSON。例如,类似:

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

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

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

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

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

于 2012-04-23T05:30:46.927 回答