16

サーバーからの応答を解析しようとしていますが、このトピックは初めてです。残念ながら、JSONP 形式です。JSONP 形式を解析する方法がわかりません。JSON パーサーで試したところ、null 値が返されました。誰でもこれを行うのを手伝ってもらえますか...

前もって感謝します。

4

1 に答える 1

23

JSONPは、JavaScript関数呼び出しでラップされたJSONです。たとえば、次のようなものです。

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

したがって、いくつかのオプションがあります。を使用している場合は、JavaScriptでWebView呼び出される関数を定義してから、JSONPデータを呼び出すだけです。これにより、関数が呼び出され、解析されたJSONオブジェクトが渡されます(解析が自動的に行われます)。callbackeval()callbackeval()

または、JavaコードにJSONP文字列がある場合、最も簡単なオプションは、次のようにJSONサブ文字列を抽出することです。

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

これにより、が削除されcallback();が残ります{"status":"success", "someVar":1}。これは、標準のJSONパーサーで解析する必要があります。

于 2012-04-23T05:30:46.927 に答える