Play 2.1 コントローラー関数でキャプチャーされた外部 URL を実行し、json データ オブジェクトを JavaScript に返す方法。
- まず、InputStream は外部 URL を開いていません。プロトコルがないというエラー
- play は戻り値として JSONObject を好みません。
コード進行中 -
Javascript
$.ajax({
url: "/documents/getjsontext/" + talksUrl ,
type: 'GET',
data: "",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(data){ do_this(data);},
error: function () {alert("Error in Ajax Call");}
});
Route- /documents/acontext/:jsonurl controllers.Class.acontext(jsonurl: String)
public static JSONObject acontext(String jsonurl) {
InputStream is = new URL(jsonurl).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}