【发布时间】:2015-01-21 15:44:32
【问题描述】:
我正在尝试使用 JQuery 解析从我的 servlet 返回的 json 数据, 这里是 JavaScript:
$(document).ready(function(){
//alert('document ready');
$('#search-btn').click(function(){
// alert($('#searchbar').val());
var url= 'http://localhost:8080/SMDE/Search?q='+$('#searchbar').val();
//alert(url);
var table='';
$.get(url,function(response){
//alert(response);
if(response){
//alert(response);
$('#container').html(response);
for(i=0;i<response.data.length;i++){
var n= response.data[i].name;
var c= reponse.data[i].category;
var ii=response.data[i].id;
table=table+"<div class='content'>" +
"<h3>Page Name :" +n+"<br/>"
"Category :" +c+"<br/>"
"</h3>" +
"<form action='/Profile' method='POST'>" +
"<input type='hidden' name='id' value='" +ii+
"'<input type='submit' class='btn' value='More...' /></form></div>";
}
$('#container').html(table);
}
if (response.error) {
alert('Error - ' + response.error.message);
//return
}
});
}); });
当我取消注释警报(响应)时;我得到正确的回应,但如果我提醒(response.data)它说未定义。 浏览器直接给出url的结果是:
{ "data": [
{
"category": "Media\/news\/publishing",
"name": "CNN",
"id": "5550296508"
},
{
"category": "Media\/news\/publishing",
"name": "CNN International",
"id": "18793419640"
},
{
"category": "Tv show",
"name": "CNN Heroes",
"id": "86418982488"
},
{
"category": "Tv network",
"name": "CNN en Espa\u00f1ol",
"id": "89613772643"
},
{
"category": "Media\/news\/publishing",
"name": "CNNMoney",
"id": "6651543066"
},
{
"category": "News\/media website",
"name": "CNNM\u00e9xico",
"id": "323626813995"
}] }
请帮助处理数据。
servlet 代码是:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.*;
/**
* Servlet implementation class Search
*/
@SuppressWarnings("unused")
@WebServlet("/Search")
public class Search extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Search() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String key = request.getParameter("q");
PrintWriter out = response.getWriter();
String result = Facebook.callGet("search?q="+key+"&type=page");
try{
/*JSONObject json = new JSONObject(result);
response.setContentType("application/json");
out.print(json);*/
out.println(result);
}catch(Exception e){
out.println("error");
}
}
}
【问题讨论】: