0

我见过很多类似的问题,但他们没有为我的问题提供答案。我的服务器形成 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?

PS据我了解,我的 JSON.parse(response.toJSON()) 不起作用,因为响应包含整个页面?

4

1 回答 1

1

免责声明:我不知道java。

在服务器端,问题可能是您的响应在写入 JSON 数组后没有关闭,允许写入其他 (html) 文本。试试这个:

response.setContentType("application/json");
response.getWriter().write(jsArray.toString());
response.getWriter().close();

在客户端,responseText 是一个字符串,而字符串没有定义 toJSON() 函数。

var list = JSON.parse(http.responseText); 

应该足够了。

于 2013-04-04T19:40:15.647 回答