鍍金池/ 問(wèn)答/Java  HTML/ Ajax 如何 得到后臺(tái)返回 的json數(shù)據(jù),正確的格式應(yīng)該如何去寫?

Ajax 如何 得到后臺(tái)返回 的json數(shù)據(jù),正確的格式應(yīng)該如何去寫?

Controller 中的代碼

    @RequestMapping("/list")
    @ResponseBody
    public List<WorkLog> AllLog(){
        List<WorkLog> sh = workLogService.AllLog(); 
        System.out.println("*******************************");
        System.out.println(sh);
        return sh;
    }

JS部分

<script>
        var data;
        $("#serach1").click(function(){
            $.ajax({  
                type: "POST",  
                url: "list",  
                dataType:"json",  
                success: function(worklog){  
                    data =JSON.stringify(worklog.sh);
                    alert(data);
                }
             });   
        });
</script>

直接訪問(wèn)/list

clipboard.png
點(diǎn)擊訪問(wèn):

clipboard.png

控制臺(tái)(這個(gè)不怎么會(huì)看)
clipboard.png

clipboard.png

我現(xiàn)在感覺(jué)就是ajax中的內(nèi)容寫錯(cuò)了。但是找不到問(wèn)題所在。

回答
編輯回答
悶油瓶

JS部分的ajax,響應(yīng)worklog沒(méi)有sh屬性,所以worklog.sh變成了undefined
嘗試:

data =JSON.stringify(worklog);

還不行,就敲個(gè)斷點(diǎn),debug看看worklog是什么

2018年2月26日 14:19
編輯回答
青瓷

為啥 worklog.sh? 后端返回沒(méi)見有sh這個(gè)字段。如果想看后端到底返回了什么, 可以 console.log(worklog)

2018年9月20日 00:59
編輯回答
她愚我

你后臺(tái)返回的是個(gè)sh 所以ajax的回調(diào)函數(shù)里的參數(shù)就是你后臺(tái)返回的數(shù)據(jù) ,不需要點(diǎn)它

2018年7月7日 17:27
編輯回答
來(lái)守候

對(duì)于后臺(tái)傳回來(lái)的數(shù)據(jù),你可以先把list轉(zhuǎn)換成json數(shù)組,
StringBuilder stringbuilder = .... 獲取list中的內(nèi)容,轉(zhuǎn)成字符串
JSONArray jsonarray = JSONArray.fromObejct(stringbuilder); // 轉(zhuǎn)成json數(shù)組

前臺(tái):
var json = eval(json); // 把獲取的數(shù)據(jù)轉(zhuǎn)成json數(shù)組
對(duì)json遍歷,獲取其中的每一個(gè)對(duì)象

2017年11月12日 02:25
編輯回答
乞許
success: function(data) {
  console.log(data);
}
2017年10月2日 18:27