我的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.But我收到错误消息...
在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对象并获取脚本响应的问题?请任何人帮忙
答案 0 :(得分:1)
您必须在servlet中创建json对象。然后在脚本中使用ajax调用来检索json。要在servlet中创建json,您可以使用Gson或java-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.
}
});