2012-04-23 45 views
13

私はサーバーからの応答を解析しようとしていますが、私はこのトピックの初心者です。残念ながら、JSONP形式です。私はJSONP形式を解析する方法を知らないのですが、JSON Parserでnull値を返してみました。 誰でもこの作業を手伝ってもらえますか?JSONP形式をJSON形式に変換する方法はありますか?

ありがとうございました。

答えて

19

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

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

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

それとも、あなたはJavaコードでJSONPの文字列を持っている場合は、最も簡単なオプションは次のように、JSONの部分文字列を抽出することが考えられます:だけであなたを残して、callback();を取り除きます

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

{"status":"success", "someVar":1}は、標準のJSONパーサーと解析する必要があります。

+0

私はwebviewを使用していません。これはログイン用にiamを使用していますので、responeがnullでない場合、ユーザーは次の画面に入ります。json parserを使用して解析エラーが発生します。 – wolverine

+0

はい、上記の2番目の例を 'substring()'呼び出しで使用してください。次に、JSONValue.parse(json)、またはJSONパーサーと同じものを実行します。実行可能な例:http://ideone.com/5v3z6 – aroth

+0

申し訳ありません..私はこのトピックに新しいです。JSONパーサで解析するとき、nullを表示するので、どうすればいいのですか?私に完全なコードを投稿してください。 – wolverine

関連する問題