我在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);
}
});
我可以
'alert("jsonData : " +jsonData);'
它警告。
但是jsonData.length
太大而且jsonData[i].sales_sabn_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());
}
答案 0 :(得分: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);
}
});