我们在日常开发的过程中,经常需要将对象和JSON相互转换,如果手动去做很麻烦,要处理很多情况,fasterxml.jackson就可以帮我们完成这样的需求
基本使用
-
导入jar
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.5.0</version> </dependency>
-
常用的操作
- 数组转JSON:
ObjectMapper mapper = new ObjectMapper(); String result = mapper.writeValueAsString(<array-obj>);
- 自定义对象转JSON
ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode(); node.put("<key>", <val-obj>); String result = mapper.writeValueAsString(node);
- JSON转JavaBean
ObjectMapper mapper = new ObjectMapper(); <JavaBean> bean = mapper.readValue(<json-string>, <JavaBean>.class);
- 集合转JSON
ObjectMapper mapper = new ObjectMapper(); String jsonlist = mapper.writeValueAsString(<java-list>);
- 还有很多的用法,这里暂时就展示这几个……
- 数组转JSON:
-
JSON注解
- Jackson中提供了一些注解来完成本来有些繁琐的操作,如:
- @JsonIgnore:此注解用于将对象序列化成JSON对象的时候,忽略掉某个属性,可以放在字段上,也可以放在getter方法上,注意放在setter方法上无效
- @JsonProperty:主要用于序列化为JSON的时候给某个字段取别名,即在JSON中显示不同于字段的名字
- @JsonFormat:此注解主要用于日期对象的格式化,序列化和反序列化都会用到
- 还有很多,但上面几个是最常用的……
- Jackson中提供了一些注解来完成本来有些繁琐的操作,如: