jackson json转对象 json转集合 对大小写支持

时间:2023-03-09 06:49:02
jackson json转对象 json转集合 对大小写支持
     @JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE)
public static class XnServiceGetUserTest {
@NotEmpty(message = "票据凭证不能为空")
private String Token; @NotEmpty(message = "用户号不能为空")
private String PERNR; @NotEmpty(message = "操作类型不能为空")
private String OPTYPE = "QRY"; public String getToken() {
return Token;
} public void setToken(String token) {
Token = token;
} public String getPERNR() {
return PERNR;
} public void setPERNR(String pERNR) {
PERNR = pERNR;
} public String getOPTYPE() {
return OPTYPE;
} public void setOPTYPE(String oPTYPE) {
OPTYPE = oPTYPE;
} }

-----------json转对象和对象转json

     public static void main(String[] args) throws Exception {
String json = "{\"OPTYPE\":\"QRY\",\"Token\":\"cRQENwe3AYNpTlz7e0dxag==\",\"PERNR\":\"aaa\"}";
ObjectMapper mapper = new ObjectMapper();
     //json转对象
XnServiceGetUserTest xnServiceGetUserTest = mapper.readValue(json, XnServiceGetUserTest.class); System.out.println(xnServiceGetUserTest.OPTYPE);
System.out.println(xnServiceGetUserTest.PERNR);
System.out.println(xnServiceGetUserTest.Token);
     //对象转json
System.out.println(mapper.writeValueAsString(xnServiceGetUserTest)); }

-------------json集合 转对象

     public static void main(String[] args) throws Exception {

         Aaw aaw = new Aaw();
List a = new ArrayList();
a.add(aaw);
aaw.setWocao("xxx");
a.add(aaw); System.out.println(objectMapper.writeValueAsString(a)); List<Aaw> bb = objectMapper.readValue("[{\"nn\":null,\"wocao\":\"xxx\"},{\"nn\":null,\"wocao\":\"xxx\"}]",
new TypeReference<List<Aaw>>() {
}); System.out.println(bb); }
注意:@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE)
这个是用于设置属性的自动发现,这样就可以支持大小写,避免多生成小写。另外如果java属性名未按照规范命名,如:aaa_aa,可用该注解来直接读取属性生成json。