Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

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

Java Map을 JSON으로 변환하는 방법에는 여러 가지가 있습니다. Java Array 및 Maps를 JSON으로 또는 그 반대로 변환하는 것은 매우 일반적입니다.

이 게시물에서는 Java Map을 JSON으로 변환하는 3가지 다른 예를 살펴봅니다. Jackson, Gson 및 org.json 라이브러리를 사용할 것입니다.

Jackson을 사용하여 JSON에 자바 매핑

다음 예제에서는 Jackson Core 및 Jackson Binding을 사용하여 Java Map을 JSON으로 변환합니다.

Jackson 라이브러리를 사용하려면 먼저 pom.xml에 추가해야 합니다. 파일:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-core</artifactId>
        <version>2.9.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.8</version>
    </dependency>
</dependencies>

그런 다음:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Map;

public class ConvertJavaMapToJson {

    @Test
    public void convertMapToJson() {
        Map<String, String> elements = new HashMap();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");

        ObjectMapper objectMapper = new ObjectMapper();

        try {
            String json = objectMapper.writeValueAsString(elements);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

출력:

{"Key2":"Value2","Key1":"Value1","Key3":"Value3"}

출력에서 볼 수 있듯이 JSON에서 요소의 순서는 맵에 추가한 순서와 다릅니다.

순서를 유지하려면 SortedMap을 사용해야 합니다. 대신.

예:

SortedMap<String, String> elements = new TreeMap();

출력:

{"Key1":"Value1","Key2":"Value2","Key3":"Value3"}

관련:

  • 자바에서 JSON을 구문 분석하는 방법
  • JSON 인코딩 및 디코딩 방법
  • Java 객체를 JSON으로 변환하는 방법

Gson을 사용하여 Java를 JSON으로 매핑

다음 예제에서는 Gson 라이브러리를 사용하여 Java Map을 JSON으로 변환하지만 먼저 Gson을 pom.xml에 종속성으로 추가해야 합니다. 파일.

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

그런 다음:

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.jupiter.api.Test;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.SortedMap;
import java.util.TreeMap;

public class ConvertJavaMapToJson {

    @Test
    public void convertMapToJson() {
        SortedMap<String, String> elements = new TreeMap();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");

        Gson gson = new Gson();
        Type gsonType = new TypeToken<HashMap>(){}.getType();
        String gsonString = gson.toJson(elements,gsonType);
        System.out.println(gsonString);
    }
}

출력:

{"Key1":"Value1","Key2":"Value2","Key3":"Value3"}

org.json을 사용하여 JSON에 자바 매핑

다음 예제에서는 org.json 라이브러리를 사용하여 Java Map을 JSON으로 변환하지만 먼저 org.json을 pom.xml에 대한 종속성으로 추가해야 합니다. 파일.

<dependencies>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180813</version>
    </dependency>
</dependencies>

그런 다음:

import org.json.JSONObject;
import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Map;

public class ConvertJavaMapToJson {

    @Test
    public void convertMapToJson() {
        Map<String, String> elements = new HashMap<>();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");

        JSONObject json = new JSONObject(elements);

        System.out.println(json);
    }
}

출력:

{"Key2":"Value2","Key1":"Value1","Key3":"Value3"}