1. 前端多个对象数组的JSON.stringify转化为字符串传参,后端集合对象接收:

var arr = [ 0, 1, 2];
var myJSON = JSON.stringify(arr);
此时myJSON字符串就是’[0,1,2]',传给后台接受

前端

	//页面加载完毕
	$(function(){

		var data = [{
			loginAct:111,
			loginPwd:1111,
		},{
			loginAct:222,
			loginPwd:2222,
		}];
		//转化成json格式发送
		data = JSON.stringify(data);
		//发送请求
		$.ajax({
			url:'test',
			data:data,
			contentType: "application/json",
			type:'post',
			dataType:'json',
			success:function (data) {
				debugger
			},
			beforeSend:function () {//当ajax向后台发送请求之前,会自动执行本函数;
				//该函数的返回值能够决定ajax是否真正向后台发送请求:
				//如果该函数返回true,则ajax会真正向后台发送请求;否则,如果该函数返回false,则ajax放弃向后台发送请求。
				$("#msg").text("正在努力验证....");
				return true;
			}
		});

后端方法1(使用spring注解@RequestBody接收):

    @PostMapping("test")
    @ResponseBody
    public void test(@RequestBody List<UserDTO> datas){
        for (UserDTO data:datas) {
            data.setEmail("122");
            System.out.println(data);
        }
		//datas.getClass().toString()获取datas的数据类型
        System.out.println(datas.getClass().toString());

    }

后端方法1的对象UserDto

package com.mycrm.maven.workbench.dto;

import java.io.Serializable;

/**
 * dto
 * @author AUAS
 */
public class UserDTO implements Serializable {
    private String loginAct;
    private String loginPwd;
    private String email;

    public String getLoginAct() {
        return loginAct;
    }

    public void setLoginAct(String loginAct) {
        this.loginAct = loginAct;
    }

    public String getLoginPwd() {
        return loginPwd;
    }

    public void setLoginPwd(String loginPwd) {
        this.loginPwd = loginPwd;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

后端方法2(使用JSON.parseArray()把前端 [{“loginAct”:111,“loginPwd”:1111},{“loginAct”:222,“loginPwd”:2222}] 数据转化为LIST):

@PostMapping("test")
    @ResponseBody
    public void test(@RequestParam(value = "data", required = false, defaultValue = "[]")String data){
        //把前台传来的数据('[]')转化为List
        List<UserDTO> datas = JSON.parseArray(data,UserDTO.class);
        for (UserDTO dataOne:datas) {
            dataOne.setEmail("122");
            System.out.println(dataOne);
        }
        System.out.println(datas.getClass().toString());

    }

在这里插入图片描述

2.前端对象传参,后端直接对应接收:

var data = {“title”:“标题”, “systemType”:[1,2,3]}

前端

	//页面加载完毕
	$(function(){

	    //创建数组
        var systemType= new Array();
        systemType.push(0);
        systemType.push(1);
        systemType.push(2);

		//发送请求
		$.ajax({
			url:'test',
            data: {"title":"标题", "systemType":systemType},
			type:'post',
			dataType:'json',
			success:function (data) {
				debugger
			},
			beforeSend:function () {//当ajax向后台发送请求之前,会自动执行本函数;
				//该函数的返回值能够决定ajax是否真正向后台发送请求:
				//如果该函数返回true,则ajax会真正向后台发送请求;否则,如果该函数返回false,则ajax放弃向后台发送请求。
				$("#msg").text("正在努力验证....");
				return true;
			}
		});

后端

/**
     * post请求接收
     * @param
     */
    @RequestMapping(value = "test", method = RequestMethod.POST)
    @ResponseBody
    public String test(
            @RequestParam(value = "title",required = true,defaultValue = "") String title,
            @RequestParam(value = "systemType[]",defaultValue = "[]" ) List<Integer>  systemType
    ){
        return title;
    }

在这里插入图片描述

3.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐