前臺AJAX傳數組,後臺的java接收

前臺AJAX傳數組,後臺的java接收(後臺接收前端發送的數組類型數據)兩種解決方法前端

第一種方法,前端將數組經過JSON.stringify()方法轉換爲json格式數據,後臺將接收的json數據轉換爲數組java

function search() {
            var equiNames = JSON.stringify($("#equiNames").val());
            var startDate = $('#daterange-btn span').text().substring(0, 10);
            var endDate = $('#daterange-btn span').text().substring(13);
            $.ajax({
                url : "dataAcquisition/report",
                type : "post",
                dataType : "json",
                data : {
                    "equiNames" : equiNames,
                    "startDate" : startDate,
                    "endDate" : endDate
                },
                success : function(result) {
                    ……
                    }
                }
            });
        }
@RequestMapping("/report")
    public void report(String equiNames, String startDate, String endDate, HttpServletRequest request,
            HttpServletResponse response) throws ExecutionException, InterruptedException, IOException, ParseException {
        //將接收的json數據轉換爲數組
        List<String> equiNameList = new Gson().fromJson(equiNames, new TypeToken<List<String>>() {
        }.getType());
        List<DataAcquisitionVo> resultList = dataAcquisitionService.report(equiNameList, startDate, endDate);
        response.setContentType("application/json; charset=UTF-8");
        response.getWriter().write(new Gson().toJson(resultList));
    }

第二種方法,前端經過設置traditional屬性爲true直接傳遞數組 */,後臺經過對象接收ajax

function search() {
            var equiNames = JSON.stringify($("#equiNames").val());
            var startDate = $('#daterange-btn span').text().substring(0, 10);
            var endDate = $('#daterange-btn span').text().substring(13);
            $.ajax({
                url : "dataAcquisition/report",
                type : "post",
                dataType : "json",
                traditional : true,//用傳統方式序列化數據
                data : {
                    "equiNames" : equiNames,
                    "startDate" : startDate,
                    "endDate" : endDate
                },
                success : function(result) {
                    ……
                    }
                }
            });
        }

對象json

@RequestMapping("/report")
    public void report(ReportParaVo rp, HttpServletRequest request, HttpServletResponse response)
            throws ExecutionException, InterruptedException, IOException, ParseException {
        
        List<DataAcquisitionVo> resultList = dataAcquisitionService.report(rp);
        response.setContentType("application/json; charset=UTF-8");
        response.getWriter().write(new Gson().toJson(resultList));
    }
import java.util.List;

public class ReportParaVo {
    private List<String> equiNames;
    private String startDate;
    private String endDate;

    public List<String> getEquiNames() {
        return equiNames;
    }

    public void setEquiNames(List<String> equiNames) {
        this.equiNames = equiNames;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

}

第二種方法效果如圖所示
數組

相關文章
相關標籤/搜索