Hi Experts,
I am having issue parsing a List of objects at the client side. My servlet sends a List through JSONArray.
Servlet: AjaxRequest.java
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- PrintWriter out=response.getWriter();
- response.setContentType("application/json");
- response.setHeader("Cache-control","no-cache, no-store");
- response.setHeader("Pragma", "no-cache");
- response.setHeader("Expires", "-1");
- JSONArray arrayObj=new JSONArray();
- String query=request.getParameter("term");
- //System.out.println(query);
- query=query.toLowerCase();
- List<KPpod> kPpods=findPOD(query);
- arrayObj.add(kPpods);
- out.println(arrayObj);
- out.close();
- }
-
- private List<KPpod> findPOD(String query){
- query=query.toLowerCase();
- List<KPpod> kppods=new ArrayList<KPpod>();
- for (KPpod kPpod : podList) {
- String Podname=kPpod.getpodName().toLowerCase();
- if(Podname.startsWith(query)){
- kppods.add(kPpod);
- }
- }
- return kppods;
- }
The servlet works as desired. However, when I get the JSON object at client, I'm not able to parse it.
JSP: Arena.jsp
- $(document).ready(function(){
- $("input#autopod").autocomplete({
- width:200,
- max:5,
- delay:100,
- minLength:1,
- autoFocus:true,
- cacheLength:1,
- scroll:true,
- highlight:false,
- source: function(request, response){
- $.ajax({
- url:"/birt/AjaxRequest",
- contentType:"applicaton/json",
- dataType:"json",
- data:request,
- success:function(data, textStatus, jqXHR){
- /* var parsed=jQuery.parseJSON(JSON.stringify(data));
- for(var i=0;i<data.length;i++){
- var arr=data[i];
- for(var j=0; j<arr.length;j++){
- var pod=arr[j];
- console.log(pod.podId);
- }
- }*/
- console.log( data);
- var items = data;
- response(items);
- },
- error:function(jqXHR, textStatus, errorThrown){
- console.log(textStatus);
- }
- });
My Chrome debugger shows the following:
Please help.