我有一個從彈簧控制器返回的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