Java之Jackson的基本使用案例讲解
什么是Jackson
Jackson是一个基于Java开发的JSON处理工具,它可以将Java对象转换成JSON格式的数据,并且可以将JSON格式的数据转换成Java对象。它的优势在于轻量级、性能卓越、使用简单等特点,因此在Java开发中十分常用。
Jackson的基本用法
1. 导入Jackson依赖
在使用Jackson前,首先需要导入Jackson的相关依赖。在Maven项目中,在pom.xml文件中添加以下依赖:
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.4</version>
</dependency>
2. Java对象转换为JSON
使用Jackson将Java对象转换为JSON,需要先创建一个ObjectMapper对象,然后调用其中的writeValueAsString方法进行转换。
class User {
private String name;
private int age;
// 省略getter、setter方法
}
public class Demo {
public static void main(String[] args) throws JsonProcessingException {
User user = new User();
user.setName("Tom");
user.setAge(18);
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(user);
System.out.println(jsonString);
}
}
运行以上代码,输出如下:
{"name":"Tom","age":18}
3. JSON转换为Java对象
使用Jackson将JSON转换为Java对象,同样需要先创建一个ObjectMapper对象,然后调用其中的readValue方法进行转换。
public class Demo {
public static void main(String[] args) throws JsonProcessingException {
String jsonString = "{\"name\":\"Tom\",\"age\":18}";
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(jsonString, User.class);
System.out.println(user.getName() + " " + user.getAge());
}
}
运行以上代码,输出如下:
Tom 18
示例说明
示例1:将集合转换为JSON
class Book {
private String name;
private String author;
// 省略getter、setter方法
}
public class Demo {
public static void main(String[] args) throws JsonProcessingException {
List<Book> books = new ArrayList<>();
books.add(new Book("《Java编程思想》", "Bruce Eckel"));
books.add(new Book("《Effective Java》", "Joshua Bloch"));
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(books);
System.out.println(jsonString);
}
}
运行以上代码,输出如下:
[{"name":"《Java编程思想》","author":"Bruce Eckel"},{"name":"《Effective Java》","author":"Joshua Bloch"}]
示例2:使用注解控制JSON序列化
在将Java对象转换为JSON的过程中,Jackson默认会将对象的所有属性都进行序列化。但有些时候,我们不需要将所有属性都序列化出去,这时可以使用Jackson提供的注解来控制序列化。
class Student {
private String name;
@JsonIgnore // 不序列化age属性
private int age;
// 省略getter、setter方法
}
public class Demo {
public static void main(String[] args) throws JsonProcessingException {
Student student = new Student();
student.setName("Tom");
student.setAge(18);
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(student);
System.out.println(jsonString);
}
}
运行以上代码,输出如下:
{"name":"Tom"}
以上就是Jackson的基本用法和两个示例,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之Jackson的基本使用案例讲解 - Python技术站