在以下示例中,我们将使用ObjectMapperJackson库中的类将JSON字符串转换为Java对象。此类提供了一种readValue(String, Class<T>)将JSON字符串反序列化为Java对象的方法。该方法的第一个参数是JSON字符串,第二个参数是转换的结果类型。
package org.nhooo.example.jackson; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; public class JsonToObject { public static void main(String[] args) { String json = "{\"id\": 1, \"name\": \"The Beatles\"}"; ObjectMapper mapper = new ObjectMapper(); try { Artist artist = mapper.readValue(json, Artist.class); System.out.println("Artist = " + artist); System.out.println("artist.getId() = " + artist.getId()); System.out.println("artist.getName() = " + artist.getName()); } catch (IOException e) { e.printStackTrace(); } } }
这是Artist类的定义。
package org.nhooo.example.jackson; public class Artist { private Long id; private String name; public Artist() { } public Artist(Long id, String name) { this.id = id; this.name = name; } // Getters & Setters @Override public String toString() { return "Artist{" + "id=" + id + ", name='" + name + '\'' + '}'; } }
上面的代码片段将打印到以下输出:
Artist = Artist{id=1, name='The Beatles'} artist.getId() = 1 artist.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>