有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何向映射添加所有@PostMapping参数?

我想提供一个POSTservlet,它接受以下JSON内容:

{
  "name": John
  "age": 25,
  "some": "more",
  "params: "should",
  "get": "mapped"
}

其中两个属性应该显式映射到定义的参数。所有其他参数都应该进入Map<String, String>

问题:如何让Spring将它们直接映射到bean的映射中

@RestController
public void MyServlet {
   @PostMapping
   public void post(@RequestBody PostBean bean) {

   }
}

public class PostBean {
   private String name;
   private String age;

   //all other json properties should go here
   private Map<String, String> map;
}

共 (1) 个答案

  1. # 1 楼答案

    public class PostBean {
        private Map<String, String> map;
    
        @JsonAnyGetter
        public Map<String, String> getMap() {
            return map;
        }
    
        @JsonAnySetter
        public void setMap(String name, String value) {
            if (this.map == null) map = new HashMap<>();
            this.map.put(name, value);
        }
    }