Spring MVC使用包含点的变量映射@RequestBody

时间:2017-11-03 10:18:38

标签: spring spring-mvc spring-boot

我正在使用以下对象向我的Rest Contoller发出POST请求:

public class Request {
  private String relationshipName;

  // Getters, setter and contructor
}

我想把它映射到POJO:

class Intermediate {
public:
    Intermediate(int val) { ... }

protected:
    template<typename V>
    Intermediate(V vis)
        : Intermediate(vis(*static_cast<const Base*>(this))) {}
};

class Derived {
public:
    Derived(int val)
        : Intermediate( [&](const Base& base) { return base.c + val; }) { ... }
};

我该怎么做?

2 个答案:

答案 0 :(得分:2)

使用@JsonProperty

为您的媒体资源添加注释
public class Request {

    @JsonProperty("relationship.name")
    private String relationshipName;

    ...
}

默认情况下,映射将使用变量名作为属性的键。因此,如果没有注释,它会期望relationshipName@JsonProperty允许您自定义密钥而不更改变量名称。

答案 1 :(得分:0)

您是否尝试在@JsonProperty上使用relationshipName

@JsonProperty(name)告诉Jackson ObjectMapper将JSON属性名称映射到带注释的Java字段名称。