2015-06-16 6 views
0


У меня проблема в JSON.
Не удалось в JSON, поэтому я не смог найти, в чем проблема.
Вот код JSP.JSON размещение неопределенных данных

$(document).ready(
    function(){ 

     window.onload = dept_select; 

     $("#sales_dept_id").change(dept_select); 

     //alert("$("#sales_sabn_id").val() : "+$("#sales_sabn_id").val()); 
     //alert("!!"); 
    } 
    ); 

var dept_select = function(){ 
var deptId =$("#sales_dept_id").val(); 
var sabnId =$("#sales_sabn_id").val(); 
alert(deptId); 
alert("sabnId : "+sabnId); 
$.ajax({ 
    type:"POST", 
    url:"/servlet/servlet.json.JSonSalesSabnRequestServer", 
    data:{"sales_dept_id": deptId 
      }, 
    dataType:"JSON", 
    success:function(jsonData){ 
     alert("jsonData : " +jsonData); 
     //alert("jsonDatalength : " +Object.keys(jsonData).length); 
     //var aa=JSON.parse(jsonData); 
     //alert("aa : " +aa); 
     //alert(jsonData[0].sales_sabn_id); 

     var str = "<option value=''>SEL</option>"; 
     for(var i = 0; i<jsonData.length;i++){ 
      if(sabnId == jsonData[i].sales_sabn_id){ 
       str = str+"<option value='"+jsonData[i].sales_sabn_id+"' selected >"+ jsonData[i].sales_sabn_name+"</option>"; 
      }else{ 
       str = str+"<option value='"+jsonData[i].sales_sabn_id+"'>"+ jsonData[i].sales_sabn_name+"</option>"; 
      } 

     } 
     alert("str : " +str); 
     $("#sales_sabn_id").empty().append(str); 
     }, 
     error:function(xhr, status, err){ 
     alert(status+", "+xhr.readyState+" "+err); 
     } 
    }); 

я могу получить

'alert("jsonData : " +jsonData);' 


Он предупреждает.
Но jsonData.length слишком большой и jsonData[i].sales_sabn_id все не определено.
Pls помочь ..

А вот набор данных

try { 

     request.setCharacterEncoding("utf-8"); 

     String sales_dept_id = StringUtil.getNullCheck((String)request.getParameter("sales_dept_id")); 

     //FileUtil.writeLog("[JSonSalesSabnRequestServer.java] sales_dept_id = " + sales_dept_id);  

     DataUtil dataUtil = new DataUtil(); 
     ArrayList objList = dataUtil.getSaleSabn(sales_dept_id); 

     for(int i = 0; i < objList.size(); i++){ 
      JSONObject obj =new JSONObject(); 
      HashMap map = (HashMap)objList.get(i); 
      FileUtil.writeLog("SABN : "+(String)map.get("SABN")); 
      FileUtil.writeLog("SABN_NAME : "+(String)map.get("SABN_NAME")); 
      obj.put("sales_sabn_id",map.get("SABN")); 
      obj.put("sales_sabn_name",map.get("SABN_NAME")); 
      objArry.add(obj); 
     } 

     response.setHeader("Cache-Control", "no-cache");        
     response.setCharacterEncoding("utf-8");      
     response.getWriter().write(objArry.toString() ); 

     FileUtil.writeLog("objArry.toString() : "+objArry.toString()); 

    } 
+0

Просьба формиат данных JSON –

+0

мне получить выход этой линии console.log (TypeOf jsonData); поместите это в свою функцию sucess и предоставьте мне вывод –

+0

после ответа json. Проверьте, действительно ли вы json http://jsonviewer.stack.hu/ –

ответ

0

Что вы получаете массив объектов. Поэтому вам нужно разобрать данные JSON, если это строка JSON, а затем повторить ее.

$.ajax({ 
     type:"POST", 
     url:"/servlet/servlet.json.JSonSalesSabnRequestServer", 
     data:{"sales_dept_id": deptId 
       }, 
     dataType:"JSON", 
     success:function(jsonData){ 
      alert("jsonData : " +jsonData); 

      var parsedJSON = JSON.parse(jsonData); // only if its a json string 
      console.log(parsedJSON.length); // check length of the array 

      var str = "<option value=''>SEL</option>"; 
      for(var i = 0; i < parsedJSON.length; i++){ 
       console.log(parsedJSON[i].sales_sabn_id); // printing the id 
       if(sabnId == parsedJSON[i].sales_sabn_id){ 
        str = str+"<option value='"+parsedJSON[i].sales_sabn_id+"' selected >"+ parsedJSON[i].sales_sabn_name+"</option>"; 
       }else{ 
        str = str+"<option value='"+parsedJSON[i].sales_sabn_id+"'>"+ parsedJSON[i].sales_sabn_name+"</option>"; 
       } 

      } 
      alert("str : " +str); 
      $("#sales_sabn_id").empty().append(str); 
      }, 
      error:function(xhr, status, err){ 
      alert(status+", "+xhr.readyState+" "+err); 
      } 
     }); 
+0

Спасибо за помощь !!! ~~ – KJH

+0

@KJH приветствую вас – Swaprks

Смежные вопросы