[英]Referencing a JSON object created in Java through javascript in the one JSP page
如何在Java中創建JSON對象,然后在同一jsp頁面中通過javascript引用該對象?
我正在做的是-訪問postgresql數據庫-運行sql查詢並返回結果集-將結果集轉換為JSON對象
這一切都很好,因為當我在此階段打印出JSON對象時,它可以工作。
然后,我去使用該JSON對象輸入Highchart。 我正在嘗試使用$ .getJson,但一直在說我的JSON對象未定義! 我知道getjson需要一個url,但是我嘗試訪問JSON對象的任何其他方式也都無效。 任何幫助將非常感激。
//Do imports
//connect to database
//sql query
<%
JSONArray json = new JSONArray();
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
while( rs.next() ){
int numColumns = rsmd.getColumnCount();
JSONObject obj = new JSONObject();
//convert to JSON
json.put(obj);
}
//test JSON
System.out.println(json);
%>
<script>
$(function () {
$.getJSON(json, function(data) {
options.series[0].data = data;
});
$('#container').highcharts({
//make up chart
//try load json into chart
series: [{
name: 'Tokyo',
data: data
}]
});
});
</script>
我建議使用一個處理Java內容的servlet,並擺脫JSP中的Java代碼。 現在就這樣做,因為最終您的單個JSP已經成長為完整的產品,然后更改任何內容為時已晚,因為這會花費很多錢。
問題是,JavaScript代碼無法看到您的Java代碼。 JavaScript代碼無法訪問json變量。
創建一個處理查詢等的servlet,並返回一個JSON字符串,然后您的JSP可以讀取它。
您正在使用的Json變量在Java作用域而不是javascript作用域中; 為了使用創建的內容,您應該輸出以下內容
System.out.println(“ var json ='” + json +“';”);
這樣,該對象將成為整個頁面可用的javascript對象,您可以在腳本中使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.