Java中常用解析工具jackson及fastjson的使用攻略
jackson
1. 简介
jackson是一种可以将java对象转换为JSON格式,也可以将JSON格式转换为java对象的工具。它为一个高性能的JSON处理库,是Spring框架的默认JSON格式解析工具,此外也逐渐成为Java领域内最流行的JSON解析器之一。
2. 快速开始
首先我们需要在pom.xml中加入jackson的依赖:
<!--Jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9</version>
</dependency>
然后我们可以在java代码中使用jackson进行转换:
// 创建要序列化的java对象
Person person = new Person();
person.setName("张三");
person.setAge(18);
// 将Java对象序列化为JSON字符串
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(person);
System.out.println(jsonString); // {"name":"张三","age":18}
// 将JSON字符串解析为Java对象
Person p = objectMapper.readValue(jsonString, Person.class);
System.out.println(p.getName()); // 张三
3. 示例说明
示例一:将JSON数组转换为Java List
// JSON字符串示例
String jsonString = "[{\"name\":\"张三\",\"age\":18},{\"name\":\"李四\",\"age\":20}]";
// 将JSON数组解析为Java List
ObjectMapper objectMapper = new ObjectMapper();
List<Person> list = objectMapper.readValue(jsonString, new TypeReference<List<Person>>() {});
System.out.println(list.get(0).getName()); // 张三
System.out.println(list.get(1).getName()); // 李四
示例二:将Java List转换为JSON数组
// 创建要序列化的java List
List<Person> list = new ArrayList<>();
Person person1 = new Person();
person1.setName("张三");
person1.setAge(18);
list.add(person1);
Person person2 = new Person();
person2.setName("李四");
person2.setAge(20);
list.add(person2);
// 将Java List序列化为JSON数组
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(list);
System.out.println(jsonString); // [{"name":"张三","age":18},{"name":"李四","age":20}]
fastjson
1. 简介
fastjson是阿里巴巴开源的JSON解析库,可以将Java对象转换为JSON格式,也可以将JSON格式转换为Java对象。fastjson具有极快的解析速度和压缩比,是业内较为出色的JSON解析工具。
2. 快速开始
首先我们需要在pom.xml中加入fastjson的依赖:
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
然后我们可以在java代码中使用fastjson进行转换:
// 创建要序列化的java对象
Person person = new Person();
person.setName("张三");
person.setAge(18);
// 将Java对象序列化为JSON字符串
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString); // {"age":18,"name":"张三"}
// 将JSON字符串解析为Java对象
Person p = JSON.parseObject(jsonString, Person.class);
System.out.println(p.getName()); // 张三
3. 示例说明
示例一:将JSON数组转换为Java List
// JSON字符串示例
String jsonString = "[{\"name\":\"张三\",\"age\":18},{\"name\":\"李四\",\"age\":20}]";
// 将JSON数组解析为Java List
List<Person> list = JSON.parseObject(jsonString, new TypeReference<List<Person>>() {});
System.out.println(list.get(0).getName()); // 张三
System.out.println(list.get(1).getName()); // 李四
示例二:将Java List转换为JSON数组
// 创建要序列化的java List
List<Person> list = new ArrayList<>();
Person person1 = new Person();
person1.setName("张三");
person1.setAge(18);
list.add(person1);
Person person2 = new Person();
person2.setName("李四");
person2.setAge(20);
list.add(person2);
// 将Java List序列化为JSON数组
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString); // [{"age":18,"name":"张三"},{"age":20,"name":"李四"}]
以上就是jackson和fastjson的简单入门攻略,可以初步了解如何使用这两种JSON解析工具。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中常用解析工具jackson及fastjson的使用 - Python技术站