Autocomplete Json Array

Autocomplete Json Array

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

  1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2. // TODO Auto-generated method stub
  3. PrintWriter out=response.getWriter();
  4. response.setContentType("application/json");
  5. response.setHeader("Cache-control","no-cache, no-store");
  6. response.setHeader("Pragma", "no-cache");
  7. response.setHeader("Expires", "-1");
  8. JSONArray arrayObj=new JSONArray();
  9. String query=request.getParameter("term");
  10. //System.out.println(query);
  11. query=query.toLowerCase();
  12. List<KPpod> kPpods=findPOD(query);
  13. arrayObj.add(kPpods);
  14. out.println(arrayObj);
  15. out.close();
  16. }
  17. private List<KPpod> findPOD(String query){
  18. query=query.toLowerCase();
  19. List<KPpod> kppods=new ArrayList<KPpod>();
  20. for (KPpod kPpod : podList) {
  21. String Podname=kPpod.getpodName().toLowerCase();
  22. if(Podname.startsWith(query)){
  23. kppods.add(kPpod);
  24. }
  25. }
  26. return kppods;
  27. }
The servlet works as desired. However, when I get the JSON object at client, I'm not able to parse it.

JSP: Arena.jsp
  1. $(document).ready(function(){
  2. $("input#autopod").autocomplete({
  3. width:200,
  4. max:5,
  5. delay:100,
  6. minLength:1,
  7. autoFocus:true,
  8. cacheLength:1,
  9. scroll:true,
  10. highlight:false,
  11. source: function(request, response){
  12. $.ajax({
  13. url:"/birt/AjaxRequest",
  14. contentType:"applicaton/json",
  15. dataType:"json",
  16. data:request,
  17. success:function(data, textStatus, jqXHR){
  18. /* var parsed=jQuery.parseJSON(JSON.stringify(data));
  19. for(var i=0;i<data.length;i++){
  20. var arr=data[i];
  21. for(var j=0; j<arr.length;j++){
  22. var pod=arr[j];
  23. console.log(pod.podId); 
  24. }
  25. }*/
  26.     console.log( data);
  27.                    var items = data;
  28.                    response(items);
  29. },
  30. error:function(jqXHR, textStatus, errorThrown){
  31. console.log(textStatus);
  32. }
  33. });
My Chrome debugger shows the following: 

Please help.