Spring boot 如何在Spring Boot中自定义自定义对象的JSON序列化

Spring boot 如何在Spring Boot中自定义自定义对象的JSON序列化,spring-boot,Spring Boot,我有一个MapResult和TestController,如下所示 //mapreult.java 公共类MapResult(){ //地图保存了我需要的数据 私有映射映射=新的HashMap(); 公共void属性(字符串名称、对象值){ map.put(名称、值); 归还这个; } //…其他方法和属性 } //TestController.java @GetMapping(“/test”) MapResult测试(){ 返回新的MapResult().prop(“名称”、“AAA”).pr

我有一个
MapResult
TestController
,如下所示

//mapreult.java
公共类MapResult(){
//地图保存了我需要的数据
私有映射映射=新的HashMap();
公共void属性(字符串名称、对象值){
map.put(名称、值);
归还这个;
}
//…其他方法和属性
}
//TestController.java
@GetMapping(“/test”)
MapResult测试(){
返回新的MapResult().prop(“名称”、“AAA”).prop(“年龄”,20岁);
}

如何以
{“name”:“AAA”,“age”:20}的格式获得响应
/test

您可以尝试使用。不要直接返回MapResult,而是从MapResult中创建一个新的ResponseEntity,并使控制器返回该响应实体。

下面是具有Map属性的TestModel

public class TestModel {
    private Map<String, Object> map = new HashMap<>();

    public void prop(String name, Object value){
        map.put(name, value);
        return;
    }

    public Map<String, Object> getProp(){
        return map;
    }
}
公共类测试模型{
私有映射映射=新的HashMap();
公共void属性(字符串名称、对象值){
map.put(名称、值);
返回;
}
公共地图getProp(){
返回图;
}
}
并从上面的类从下面的控制器调用map

@RestController
public class DummyController {
    @GetMapping("/test")
    public Map<String, Object> test() {
        TestModel t = new TestModel();
        t.prop("name", "AAA");
        t.prop("age", 20);

        return t.getProp();
    }
}
@RestController
公共类DummyController{
@GetMapping(“/test”)
公共地图测试(){
TestModel t=新的TestModel();
t、 道具(“名称”、“AAA”);
t、 道具(“年龄”,20岁);
返回t.getProp();
}
}

然后在调用/test之后,它将给您结果{“name”:“AAA”,“age”:20}。是否有特定的需要,因为您已经创建了包装类
mapreult