JSONP is just JSON wrapped in a JavaScript function call. For instance, something like:
callback({"status":"success", "someVar":1});
So you have a couple of options. If you are using a WebView
you can define a function called callback
in JavaScript and then just call eval()
on the JSONP data. This will invoke the callback
function, passing it the parsed JSON object (the eval()
does the parsing for you).
Or, if you have the JSONP string in your Java code, the simplest option is probably to extract out the JSON substring, like:
String json = jsonp.substring(jsonp.indexOf("(") + 1, jsonp.lastIndexOf(")"));
That will strip off callback(
and );
, leaving you with just {"status":"success", "someVar":1}
, which should then parse with any standard JSON parser.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…