1、ObjectMapper类是Jackson库的主要类。这里需要引入到项目中。 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.3</version> </dependency>
2、jsonString转门钙蹲茌javaBean对象时忽略大小写及下划线String data = "{\"pAy_cOdE\":\"123\",\"Memo\":\"001\"}"; UppVirAccountCloseVo copyVo = JSON.parseObject(data, UppVirAccountCloseVo.class);fastjson对属性的大小方法进行封装,对大小写及下划线都可以转换。结果:payCode=123
3、String sbean = JSON.toJSONString(copyVo); System.out.println(sbean);fastjson将对象转换json打印的是对象属性名称一致的。对@JsonProperty(value = "")失效
4、javaBean转json字符串,没有的属性默认不显示,并且对注解@JsonProperty(value = "")失效,因为@JsonProperty注解是jackson包的注解,fastjson不能使用。vo.setMemo("");//设置为空字符串则打印空字符串。String sBean = JSON.toJSONString(vo);{"memo":"memo","payCode":"123"}
5、javaBean转json字符串,没有的属性默认null,注解和objectMapper都是jackSon包下的方法。@Json朐袁噙岿Include(Include.NON_EMPTY)@JsonProperty(value = "Name")序列化时为Name属性Include.Include.ALWAYS(Default/ 都参与序列化)Include.NON_DEFAULT(当Value为默认值的时候不参与,如Int a;当a=0的时候不参与)Include.NON_EMPTY(当Value为“”或者null不输出)Include.NON_NULL(当Value为null不输出)
6、ObjectMapper objectMapper = new ObjectMapper();objectMapper.writeValueAsString(vo);//打印没有值的属性都为null,如果不想参与序列化,则使用注解JsonInclude。{"id":null","PayCode":"123","Status":false,"Memo":"memo"}
7、如果想让javabean对象的属性序列化时是另外的名称可以使用,@JsonProperty(value = "Status")注解