如何使用json属性(my-name)映射java对象属性(my_name)?

Sat*_*dey 8 json jackson

我使用jackson json api将json数据映射到java对象.在具有json属性的相同对象属性名称的情况下,一切都很好.现在我有一个情况,我正在获取json数据属性-.(我的名字).

在java中,我们不能包含-在变量名中.

import org.codehaus.jackson.map.ObjectMapper;

private static final ObjectMapper mapper = new ObjectMapper();

User user = mapper.readValue("{my-name:\"abcd\"}", User.class);

public class User {private String my_name; /*get-set methods*/}
Run Code Online (Sandbox Code Playgroud)

有什么我需要申请的User.class.

我不想这么想改变我的代码.

小智 17

在您的java类中,您可以根据需要提供任何名称

防爆.private String myName;

但是在setter方法中只写:

@JsonProperty("my-name")
public void setMyName(String myName) {
    this.myName = myName;
}
Run Code Online (Sandbox Code Playgroud)