我在这里遇到这个奇怪的问题。我通过AJAX向客户端发送HashMap作为JSON来填充下拉列表。服务器端的一切看起来都不错,但在客户端浏览器上,下拉列表正在填充为[object Object]。我错过了什么?我的代码如下。
HashMap<Integer, Cars> cars = new HashMap();
cars.put(1,car1);
cars.put(2,car2);
json = new Gson().toJson(cars);
System.out.println(json); // PRINTS WELL
try {
ServletOutputStream os = res.getOutputStream();
os.write(json.toString().getBytes());
flushCloseOutputStream(os);
res.setStatus(HttpServletResponse.SC_OK);
} catch (Exception e) {
System.out.println("from catch");
res.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Cannot create response");
}
setDestination(req, RESPONSE_NO_REDIRECT);
在客户端
function populatedd(dropdown){
.....
.....
if (this.readyState == 4 && this.status == 200) {
var jsonResponse = JSON.parse(this.responseText);
dropdown.options.length = 0;
for (var key in jsonResponse) {
createOption(dropdown, jsonResponse[key], key);
}
.....
.....}
function createOption(dropdown, text, value) {
var x = document.createElement('option');
x.value = value;
x.text = text;
dropdown.options.add(x);
}
P.S。没有jQuery