我正在尝试解析来自服务器的响应,我是这个主题的新手,不幸的是它是JSONP格式。我不知道如何解析JSONP格式,当我尝试使用JSON Parser时,它返回null值。 任何人都可以帮我这样做......
先谢谢。
答案 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解析器进行解析。