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"}