Spring boot gradleバックエンドは、フロントエンドajaxから伝達されたjson配列文字列を受信し、オブジェクト配列に変換する


まずbuild.gradleファイルに追加:
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.8'

バックエンドでデータ・オブジェクトを作成するには、次の手順に従います.
package com.exampleb.demob;

public class Person {
    private String id;
    private String name;
    public String getId(){
        return id;
    }
    public void setId(String id){
        this.id=id;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
}

そして、受信データのコントロールを書きます.
@RequestMapping(value="/test")
    @ResponseBody
    public String test(@RequestParam String users) throws IOException {
        //     
        System.out.println(users);

        ObjectMapper mapper=new ObjectMapper();
        com.fasterxml.jackson.databind.type.ArrayType arrayType = mapper.getTypeFactory().constructArrayType(Person.class);
        Person[] persons = mapper.readValue(users, arrayType);
        for(Person person:persons){
            System.out.println("person id and name: "+person.getId()+" ---> "+person.getName());
        }
        return users;
    }

フロントエンドでデータを送信するWebページ:



    
    test
    


    
    
        var userArr = [];
        for (var i = 1; i <= 3; i++) {
            var user = {};
            user['id'] = i;
            user['name'] = 'name_' + i;
            userArr.push(user)
        }

        $(function () {
            $("#btnSubmit").click(function () {
                $.ajax({
                    url: '/test',
                    type: 'POST',
                    data: {users:JSON.stringify(userArr)},
                    success: function (responseText) {
                        alert(responseText);
                    }
                });
            });
        });