在一个JSP页面中通过javascript引用Java中创建的JSON对象
如何在java中创建JSON对象,然后在同一jsp页面中通过javascript引用该对象 我现在做的是- 访问postgresql数据库- 运行sql查询并返回结果集- 将结果集转换为JSON对象 这一切都很好,因为当我在这个阶段打印出JSON对象时,它就工作了 然后我使用这个JSON对象将数据输入到Highchart中。我试图使用$.getJson,但它一直说我的JSON对象没有定义!我知道getjson需要一个url,但我尝试过的任何其他访问JSON对象的方法也都不起作用。任何帮助都将不胜感激在一个JSP页面中通过javascript引用Java中创建的JSON对象,java,jquery,json,highcharts,Java,Jquery,Json,Highcharts,如何在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>
我建议使用一个servlet来处理Java内容,并在JSP中删除Java代码。现在就做吧,因为最终您的单个JSP已经发展成为一个完整的产品,而现在更改任何东西都为时已晚,因为这将花费金钱 问题是,JavaScript代码看不到Java代码。JavaScript代码无法访问json变量
创建一个servlet,用于处理查询等,并返回一个JSON字符串,然后JSP可以读取该字符串 您正在使用的Json变量位于java范围内,而不是javascript范围内;为了使用创建的内容,您应该输出以下内容 System.out.println var json='+json+'
这样,该对象将是一个可用于整个页面的javascript对象,您可以在脚本中使用它。啊JSP中的Java代码-我们是否回到了过去?考虑到我显然是JSP新手,您能指出我做错了什么吗?我只想学JamesB!highcharts应该在$.getJSON callabck中进行初始化,因为在这个场景中它是异步的,并且数据的获取要晚于图表的创建。好的,谢谢s3b!我现在只想查阅一个关于如何做到这一点的教程。谢谢你的建议。