1

我的 D3 代码中有一个简单的信息树结构。D3 脚本从脚本 d3.json() 函数调用 json,生成的 json 提供树结构数据。现在我有一些来自数据库的信息并命中 Servlet。我必须在 Servlet 中动态创建 json,以便它可以根据用户响应进行更改。这是我使用的脚本和 json..

这是我对 Servlet 进行 Ajax 调用的 HTML 文件。Ajax 正在调用 Servlet,但在获取响应时出错。我收到“发生错误”消息。当我运行 servlet 时......

 <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script>            
        function doajax(){
            $.ajax({
                url: "AccountServlet",
                type: "post",
                dataType: "json",

                error:function(){
                    alert("error occured!!!");
                },
                success:function(data){
                    alert(data.fullName + "\n" + data.mobileNo);
                }
            });
        }
    </script>

这是我要从中获取响应的 Html,此文件仅调用 Servlet。但在响应中,我收到一条错误消息...

在 accountServlet 我正在创建这样的 json

     ArrayList<DistinctSourceCount> countList = new ArrayList<DistinctSourceCount>();
        countList.add(new DistinctSourceCount("Jan", 1800));
        countList.add(new DistinctSourceCount("Feb", 1500));
        countList.add(new DistinctSourceCount("March", 2000));
        countList.add(new DistinctSourceCount("April", 1550));
        countList.add(new DistinctSourceCount("May", 1000));
        countList.add(new DistinctSourceCount("June", 1700));
        countList.add(new DistinctSourceCount("July", 1400));
        countList.add(new DistinctSourceCount("Aug", 1900));
        countList.add(new DistinctSourceCount("Sept", 1000));
        countList.add(new DistinctSourceCount("Oct", 1500));
        countList.add(new DistinctSourceCount("Nov", 1100));
        countList.add(new DistinctSourceCount("Dec", 2000));

        Gson gson = new Gson();
        JsonArray arrayObj = new JsonArray();
        for (int i = 0; i < countList.size(); i++) {
            DistinctSourceCount count = countList.get(i);
            JsonElement linObj = gson.toJsonTree(count);
            arrayObj.add(linObj);
        }

        JsonObject myObj = new JsonObject();
        myObj.addProperty("success", true);
        myObj.add("topList", arrayObj);
        myObj.addProperty("totalCount", countList.size());

        System.out.println(myObj.toString());
        System.out.close();

这是我到目前为止所做的代码。任何人都可以帮助我了解如何在 Servlet 中创建 json 对象并将响应返回脚本吗?请任何人帮助

4

1 回答 1

2

您必须在 servlet 中创建 json 对象。然后在您的脚本中使用 ajax 调用检索该 json。要在 servlet 中创建 json,您可以使用Gsonjava-json等任何库。

例如:

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name","flare");
        JSONArray jsonArray = new JSONArray();
        JSONObject jsonObject_child = new JSONObject();
        jsonObject_child.put("name", "analytics");
        jsonArray.put(jsonObject_child);
        jsonObject.put("children",jsonArray);
        System.out.println(jsonObject);

ajax代码如下:

        $.ajax({
        type: "POST",
        url: "PATH_OF_SERVLET",
        dataType: 'json',
        success: function(response) {
        // Parse your response from Servlet here.
        }

    });
于 2013-10-23T08:00:07.957 回答