我有一个从弹簧控制器返回的JsonObject来填充选择框。但我不能将其加载到阿贾克斯如何使用jquery和ajax调用从JsonObject获取值?
这里是我的jQuery代码
$("#category").click(function(){
$.ajax({
type: "POST",
url: "loadSelectBox",
dataType: 'json',
success: function(data){
$("#category").empty();
var options = '';
for(var i = 0; i <= data.length - 1; i++){
options += "<option value='" + data[i].id + "'>" + data[i].name + "</option>";
}
$("#category").append(options);
$("#category").trigger('chosen:updated');
}
});
})
我的控制器代码是
@PostMapping(name="loadSelectBox")
public JSONObject getCategoryJsonObj() throws Exception{
System.out.println("loadSelectBox:::::: ");
JSONObject catJsonObj=new JSONObject();
try {
ArrayList<CategoryDTO> catDTOList=globalCatList;
System.out.println("catDTOList::: " +catDTOList);
ArrayList<String> dbList=rawDataProcessService.getCurrentCategoriesInserted(structureID);
System.out.println("dbList:: " +dbList);
System.out.println("catDTOList before removing : " +catDTOList.size());
if(dbList!=null && dbList.size() >0){
for(int db=0;db<dbList.size();db++){
String dbData=dbList.get(db);
for(int cat=0;cat<catDTOList.size();cat++){
CategoryDTO dto=catDTOList.get(cat);
String currentData=dto.getCategory();
if(dbData.trim().equals(currentData)){
catDTOList.remove(cat);
}
}
}
System.out.println("catDTOList after removing : " +catDTOList.size());
for(int cat=0;cat<catDTOList.size();cat++){
CategoryDTO categoryDTO=catDTOList.get(cat);
String categoryValue=categoryDTO.getCategory();
System.out.println("categoryValue: ::" + categoryValue);
catJsonObj.put(categoryValue, categoryValue);
}
System.out.println("catJsonObjLLL " +catJsonObj);
}else{
}
} catch (Exception e) {
throw e;
}
return catJsonObj;
}
的JSONObject从春天控制器将如下键值对:
{"MONTH":"MONTH","TYPE OF DATA 5":"TYPE OF DATA 5","TYPE OF DATA 3":"TYPE OF DATA 3","TYPE OF DATA 4":"TYPE OF DATA 4"}
我无法将上面的jsonObject值加载到选择框中。
帮助表示赞赏,那种for循环是用来通过data.In的情况下,它只是一个object.So遍历的对象检索键值对的数组迭代感谢
可以显示阿贾克斯 – JYoThI
我没有得到响应数据的响应JSON数据,看起来像在阿贾克斯它不是成功 –
添加错误处理程序来获取错误信息 – JYoThI