Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ubuntu
- maven
- change file content
- local
- jdbc
- svn backup
- driverspy
- duplicate lines
- ADB
- install maven
- mariadb
- 전송포맷
- spring boot
- install
- Jenkins
- spring
- ^M바꾸기
- not to accept jdbcUrl
- javaascript
- remove
- gradle
- docker
- JavaScript
- pkgutil
- 줄복사
- Change port
- object
- key bindings
- Java
- JAR
Archives
- Today
- Total
Simplify
Jackson 라이브러리를 이용한 JSON String, Map 간 변환 (How to convert JSON String to Map and Map to JSON String) 본문
Other/Java
Jackson 라이브러리를 이용한 JSON String, Map 간 변환 (How to convert JSON String to Map and Map to JSON String)
Simplify - Jonghun 2019. 9. 24. 14:45일반적으로는 Spring 을 이용한 서버 통신이든, 그렇지 않은 경우에도 마찬가지고 String 으로 된 JSON 을 변경하는 경우가 좋은 상황은 아닙니다. 하지만 경우에 따라서 부득이하게 Plain Text 형태로 데이터를 수신하게 된 경우, 이를 변환하는 가장 쉬운 방법은 Jackson library 를 이용하는 것입니다.
라이브러리 추가
아래와 같이 pom.xml(혹은 gradle 파일)에 추가하여 관련 라이브러리를 가져옵니다.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
Source Code
1. JSON String 을 Map 으로 변환
package com.mkyong;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
public class JacksonMapExample1 {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
String json = "{\"name\":\"mkyong\", \"age\":\"37\"}";
try {
// convert JSON string to Map
Map<String, String> map = mapper.readValue(json, Map.class);
// it works
//Map<String, String> map = mapper.readValue(json, new TypeReference<Map<String, String>>() {});
System.out.println(map);
} catch (IOException e) {
e.printStackTrace();
}
}
}
결과
{name=mkyong, age=37}
2. Map 을 String 으로 변환
package com.mkyong;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
public class JacksonMapExample2 {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
Map<String, String> map = new HashMap<>();
map.put("name", "mkyong");
map.put("age", "37");
try {
// convert map to JSON string
String json = mapper.writeValueAsString(map);
System.out.println(json); // compact-print
json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
System.out.println(json); // pretty-print
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
결과
{"name":"mkyong","age":"37"}
{
"name" : "mkyong",
"age" : "37"
}
만약 JSON String 이 배열 형태라면 다음과 같이 적용한다.
예를 들어, 아래와 같은 String 인 경우,
[{"age":29,"name":"mkyong"}, {"age":30,"name":"fong"}]
다음과 같이 구현하여 확인할 수 있다.
// convert JSON array to List
List<Person> list = Arrays.asList(mapper.readValue(json, Person[].class));
출처 : https://www.mkyong.com/java/how-to-convert-java-map-to-from-json-jackson/
'Other > Java' 카테고리의 다른 글
Java Executor 에 대해 - About Java Executor (0) | 2020.01.03 |
---|---|
Java JDK 를 설치 프로그램 없이 설치하기 How to set-up (install) JDK on Mac (Linux) (0) | 2019.12.12 |
ArrayList 요소들을 이용한 조합 만들기 (How to make Collection with ArrayList) (0) | 2019.06.05 |
2차원 배열에서 주변 위치값 찾기 (How to find near positions in matrix) (0) | 2019.06.05 |
자바에서 문자와 숫자 구분하기 (How to check character and number in java) (2) | 2019.06.04 |
Comments