Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发布未定义数据的JSON_Javascript_Jquery_Json - Fatal编程技术网

Javascript 发布未定义数据的JSON

Javascript 发布未定义数据的JSON,javascript,jquery,json,Javascript,Jquery,Json,我在JSON中遇到问题 不擅长JSON,所以我找不到问题所在。 下面是JSP代码 $(document).ready( function(){ window.onload = dept_select; $("#sales_dept_id").change(dept_select); //alert("$("#sales_sabn_id").val() : "+$("#sales_sabn_id").val()); //


我在
JSON
中遇到问题
不擅长JSON,所以我找不到问题所在。
下面是
JSP
代码

$(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); 
      } 
   });

它发出警报。
但是
jsonData.length
太大,而且
jsonData[i].sales\u sabn\u id
都未定义。
请帮忙

这是数据集

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());

    }
试试看{
setCharacterEncoding(“utf-8”);
String sales_dept_id=StringUtil.getNullCheck((String)request.getParameter(“sales_dept_id”);
//FileUtil.writeLog(“[jsonsablesanrequestserver.java]sales\u dept\u id=“+sales\u dept\u id”);
DataUtil DataUtil=新的DataUtil();
ArrayList objList=dataUtil.getSaleSabn(销售部门id);
对于(int i=0;i
您得到的是一个对象数组。因此,如果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); 
          } 
       });
$.ajax({
类型:“POST”,
url:“/servlet/servlet.json.jsonSalesAbnRequestServer”,
数据:{“销售部门id”:部门id
}, 
数据类型:“JSON”,
成功:函数(jsonData){
警报(“jsonData:+jsonData”);
var parsedJSON=JSON.parse(jsonData);//仅当它是JSON字符串时
console.log(parsedJSON.length);//检查数组的长度
var str=“SEL”;
for(var i=0;i
请提供jsonget的数据格式,并向我提供此行console.log的输出(jsonData的类型);将其放入suces函数中,并在json响应后向我提供输出。检查您的json是否有效[{“sales_sabn_name”:“a(1234567)”,“sales_sabn_id”:“1234567”},{“sales_sabn_name”:“b(1234568)”,“sales_sabn_id”:“c(1234569)”,“sales_sabn_id”:“1234569”},{“sales_sabn_sabn_name”:“d(1234560)”,“sales_sabn_id”:“123456;。。。但是当我选择其中一个的时候,它是没有定义的。。
    $.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); 
          } 
       });