在javascript中处理JSON服务器响应

时间:2013-04-04 19:21:40

标签: javascript ajax json jsp

我见过许多类似的问题,但他们没有为我的问题提供答案。 我的服务器形成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())不起作用,因为响应包含整个页面?

1 个答案:

答案 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); 

应该足够了。