서버 사이드로 받고, GSON 문자열을 전송 :
자바 HttpServlet을 나는이 자바가 자바 스크립트 배열
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("application/json;charset=UTF-8");
resp.setHeader("Cache-Control", "no-cache");
PersistenceManager pm = PMF.get().getPersistenceManager();
Extent<Video> extent = pm.getExtent(Video.class, false);
ArrayList<Video> list = new ArrayList<Video>();
for (Video e : extent) {
list.add(e);
}
Gson gson = new Gson();
String json = gson.toJson(list);
System.out.println(json); // As expected: [{"id":34,"title":"a title","videoUrl":"an.mp4","imageUrl":"a.jpg" etc.
resp.getWriter().write(json);
extent.closeAll();
pm.close();
}
클라이언트 측을 내가 가진이 자바 스크립트를 사용하여 jQuery를 :
var getAllRequest = $.ajax({
url: "http://localhost:8888/getAll",
type: "GET",
dataType: "json"
});
getAllRequest.done(function(response) {
alert (response) // THIS IS AN OBJECT ARRAY, i.e., [object Object],[object Object] etc.
});
내 질문 : 응답은 실제로 json 객체이거나 json 객체의 배열입니다. jq grid를 사용하고 있으며 응답이 주어지면 그리드를 채우지 않습니다. (여기에 표시되지 않은 jq 그리드에 대한 응답 제공)
나에게 이상한 것은 자바 사이드 프린트 문은 전송되는 것이 문자열이라는 것을 나타내지 만 클라이언트 측은 문자열이 아닌 객체 배열을 얻는다. –
@normc : 제 대답을 다시 읽으십시오. 서버는 문자열을 보내야합니다. 클라이언트 측 ('$ .ajax')은 문자열을 객체로 변환합니다. 응답을 문자열로 볼 필요가 있다면'$ .ajax'의'complete' 콜백을 사용할 수 있습니다. – Oleg
gotcha, 감사합니다. 그 질문에 완벽하게 답변합니다. –