以下示例演示如何将Java对象序列化和反序列化为JSON文件。Jackson的ObjectMapper类提供writeValue(File, Object)和readValue(File, Class<T>)方法,使我们可以分别将对象写入JSON文件和将JSON文件读取到对象。
package org.nhooo.example.jackson;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
public class ObjectToJsonFile {
public static void main(String[] args) {
Artist artist = new Artist();
artist.setId(1L);
artist.setName("The Beatles");
ObjectMapper mapper = new ObjectMapper();
File file = new File("artist.json");
try {
// 序列化Java对象信息JSON文件。
mapper.writeValue(file, artist);
} catch (IOException e) {
e.printStackTrace();
}
try {
// 将JSON文件反序列化为Java对象。
Artist newArtist = mapper.readValue(file, Artist.class);
System.out.println("newArtist.getId() = " + newArtist.getId());
System.out.println("newArtist.getName() = " + newArtist.getName());
} catch (IOException e) {
e.printStackTrace();
}
}
}代码段的结果是:
newArtist.getId() = 1 newArtist.getName() = The Beatles
Maven依赖
<!-- http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.8.6/jackson-databind-2.8.6.jar --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.6</version> </dependency>