以下示例演示如何将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>