Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个JSP页面中通过javascript引用Java中创建的JSON对象_Java_Jquery_Json_Highcharts - Fatal编程技术网

在一个JSP页面中通过javascript引用Java中创建的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对象的方法也都不起作用。任何帮助都将不胜

如何在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!我现在只想查阅一个关于如何做到这一点的教程。谢谢你的建议。