我见过许多类似的问题,但他们没有为我的问题提供答案。 我的服务器形成JSON字符串并将其置于响应中:
List<String> list = getSomeList();
JSONArray jsArray = new JSONArray(list);
System.out.println(jsArray);
response.setContentType("application/json");
response.getWriter().write(jsArray.toString());
但是当我提醒响应时,在我的javascript句柄功能中,它会提醒所有页面!
function handleResponse(){
if(http.readyState == 4 && http.status == 200){
var response = http.responseText;
if(response){
alert(response); //alert all page!
var list = JSON.parse(response.toJSON()); //doesn't work!
}
}
问题:我怎么能在javascript中只分开jsArray?
P.S。据我所知,我的JSON.parse(response.toJSON())不起作用,因为响应包含整个页面?
答案 0 :(得分:1)
免责声明:我不懂java。
服务器端,问题可能是在编写JSON数组后没有关闭你的响应,允许写入其他(html)文本。试试这个:
response.setContentType("application/json");
response.getWriter().write(jsArray.toString());
response.getWriter().close();
客户端,responseText是一个字符串,字符串没有定义toJSON()函数。
var list = JSON.parse(http.responseText);
应该足够了。