Androidアプリで天気予報APIを使おうとしています。
使いたいAPIが、配信形式がJSONではなくJSONPなんですね。
JSONPから、生のJSONを取り出します。

やりかた

1
2
3
4
5
6
7
public static JSONObject StringToJsonObjectRemoveCallback(String json) throws IOException, JSONException{
  String result;
  result = json;
  result = result.substring(23, result.length() - 2);
  JSONObject ja = new JSONObject(result);
  return ja;
}

しくみ

説明するのも恥ずかしいくらい強引な解決法なんですが、、

コールバック関数がわかっている場合、先頭のcallback(みたいな場所(コールバックの括弧内)から、);までの部分を取り出します。
今のところこれでうまく動いているのでよしとしよう。
API配信元の仕様が変わったら一発アウトですね。コールバック関数名が変わっても平気な実装方法空から降ってこないかな(めんどくさい)