HOWTO · Java

Java에서 JSON을 맵으로 변환하는 방법

이 기사에서는 Java 라이브러리를 사용하여 JSON을 Map으로 변환하는 방법을 소개합니다.

Java에서 기존 JSON을 Map으로 변환하는 방법을 소개합니다. JSON은 데이터를 구조화하는 데 자주 사용되지만 때로는 JSON 값을 다른 데이터 유형으로 가져온 다음 작업해야합니다.

Java에서 JSON과 함께 작동하도록 여러 라이브러리가 생성됩니다. 많은 JSON 작업을 수행 할 수 있도록 가장 많이 사용되는 두 가지 JSON 구문 분석 라이브러리를 볼 수 있습니다.

아래는 더 나은 이해를 위해이 튜토리얼에서 작업 할 JSON입니다.

{
  "login" :
  {
    "userName" : "John Doe",
    "email" : "johndoe@john.com"
  }
}

Java에서JSONMap으로 변환하는Jackson 라이브러리

Jackson라이브러리의 메서드와 클래스가 상속 될 수 있도록 프로젝트에 아래 종속성을 포함해야합니다.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.2</version>
    <scope>compile</scope>
</dependency>

종속성을 추가 한 후 먼저FileInputStream()메서드를 사용하여 로컬 JSON 파일을 가져옵니다.

JSONMap으로 변환하려면Jackson 라이브러리에서ObjectMapper().readValue()를 호출해야합니다. readValue(JSON, ClassType)함수는 JSON 형식을 지정하려는JSONClassType의 두 인수를 사용합니다. JSONMap 형식으로 변환하고 싶으므로Hashmap.class를 사용합니다.

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;

public class Main {
  public static void main(String[] args) throws IOException {
    InputStream getLocalJsonFile = new FileInputStream("/sample.json");

    HashMap<String, Object> jsonMap = new ObjectMapper().readValue(getLocalJsonFile, HashMap.class);
    System.out.println(jsonMap);
  }
}

출력:

{login={userName=John Doe, email=johndoe@john.com}}

Java에서JSONMap으로 변환하는GSON 라이브러리

먼저 애플리케이션에 모든 GSON 메서드와 클래스를 포함하도록 프로젝트의 종속성을 포함해야합니다.

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>

GSON은 널리 사용되는 JSON 라이브러리로 파싱하여 Java Map으로 변환합니다.

Gson().fromJson(json, type)에는 두 개의 인수가 필요합니다. 그 중 하나는new JsonReader(new FileReader(jsonFilePath))를 사용하여 얻을 수있는 JSON 파일이고 두 번째 인수는 원하는 유형입니다. 변환 할 JSON입니다.

아래 예를 확인하십시오.

import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Map;

public class Main {
  public static void main(String[] args) throws IOException {
    JsonReader getLocalJsonFile = new JsonReader(new FileReader("/sample.json"));

    Type mapTokenType = new TypeToken<Map<String, Map>>() {}.getType();

    Map<String, String[]> jsonMap = new Gson().fromJson(getLocalJsonFile, mapTokenType);

    System.out.println(jsonMap);
  }
}

출력:

{login={userName=John Doe, email=johndoe@john.com}}