>  기사  >  Java  >  Jackson을 사용하여 JSON 문자열을 Java 개체로 변환하는 방법은 무엇입니까?

Jackson을 사용하여 JSON 문자열을 Java 개체로 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-05 10:48:02665검색

How to Convert a JSON String to a Java Object with Jackson?

JSON 문자열을 Java 객체로 변환

JSON 문자열을 Java 객체로 변환하기 위해 Jackson은 유연성으로 널리 알려진 오픈 소스 Java 라이브러리입니다. 이 경우 Jackson을 사용하여 목표를 달성하는 방법을 살펴보겠습니다.

제공된 JSON 문자열에는 "libraryname"에 대한 키-값 쌍과 추가 내용을 포함하는 "mymusic"의 중첩 목록이 있는 맵과 같은 구조가 포함되어 있습니다. 키-값 쌍.

Jackson을 사용하여 JSON을 맵/목록으로 변환:

<code class="java">ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(jsonString, Map.class);</code>

이 접근 방식은 JSON을 키를 사용하여 값에 액세스할 수 있는 간단한 맵으로 처리합니다. as:

<code class="java">System.out.println(map.get("libraryname"));
List<Map<String, Object>> songsList = (List<Map<String, Object>>) map.get("mymusic");
System.out.println(songsList.get(0).get("Artist Name"));</code>

JSON 트리에 Jackson 사용:

<code class="java">JsonNode rootNode = mapper.readTree(jsonString);</code>

JSON 트리 접근 방식을 사용하면 JSON 구조에 보다 동적으로 액세스할 수 있습니다.

<code class="java">System.out.println(rootNode.get("libraryname").asText());
JsonNode myMusicArray = rootNode.get("mymusic");
System.out.println(myMusicArray.get(0).get("Artist Name").asText());</code>

사용 Java Pojos(선호 방법)

또는 Java POJO(Plain Old Java Objects)를 정의하여 JSON 구조를 나타낼 수 있습니다.

<code class="java">public class Library {
    @JsonProperty("libraryname")
    private String name;
    @JsonProperty("mymusic")
    private List<Song> songs;
}
public class Song {
    @JsonProperty("Artist Name")
    private String artistName;
    @JsonProperty("Song Name")
    private String songName;
}

ObjectMapper mapper = new ObjectMapper();
Library library = mapper.readValue(jsonString, Library.class);</code>

이 방법을 사용하면 보다 객체 지향적인 방식:

<code class="java">System.out.println(library.getName());
List<Song> songs = library.getSongs();
System.out.println(songs.get(0).getArtistName());</code>

위 내용은 Jackson을 사용하여 JSON 문자열을 Java 개체로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.