jquery - Java HttpServlet sending gson string, JavaScript getting it as array -
server side have java:
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>(); (video e : extent) { list.add(e); } gson gson = new gson(); string json = gson.tojson(list); system.out.println(json); // expected: [{"id":34,"title":"a title","videourl":"an.mp4","imageurl":"a.jpg" etc. resp.getwriter().write(json); extent.closeall(); pm.close(); } client side have javascript using jquery:
var getallrequest = $.ajax({ url: "http://localhost:8888/getall", type: "get", datatype: "json" }); getallrequest.done(function(response) { alert (response) // object array, i.e., [object object],[object object] etc. }); my question: response json object, or array of json objects. i'm using jq grid, , not fill in grid when given response. (feeding response jq grid not shown here.)
json gives way post information object string. there no "json object". either have string example text like
var str = '[["a", "b"], ["c", "d"], ["e", "f"]]'; or have object example
var myobj = [["a", "b"], ["c", "d"], ["e", "f"]]; the full specification of json described here or in rfc4627. should not mix initialization syntax allows create object json string close syntax.
if use $.ajax datatype: "json" parameter , server response contains json string jqgrid internally convert server response object (see $.parsejson function) , parameter of done object. use
alert(response.length); for example inside of callback function of getallrequest.done. in way client seems correctly server response.
Comments
Post a Comment