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