반응형
JSON 파싱
- JSON은 Object, Array, Key-Value 형태로 이루어져 있으며 String, Int, Long, Boolean 등의 타입을 지원
- Java에선 JSON을 그대로 사용할 수 없으므로 변환을 하여 사용해야 함.
- Jackson 라이브러리를 활용하여 객체 생성 및 변환하여 파싱
1. Jackson 라이브러리 추가하기
// Maven
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
버전...
</dependency>
// gradle
implementation 'com.fasterxml.jackson.core:jackson-databind:버전'
반응형
2. 파싱하기(readTree 사용)
readTree()를 사용하면 Json의 형태가 key-value 단일 형태이든, Array가 포함되어있던, 여러 개의 하위 객체가 있던 읽어올 수 있다.
단일 Key-value 형태일 경우
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) {
// JSON 파일 (request 데이터일 경우 request)
String jsonFile = "data.json";
// ObjectMapper 객체 생성
ObjectMapper objectMapper = new ObjectMapper();
// JSON 파일을 Java 객체로 읽기
JsonNode rootNode = objectMapper.readTree(new File(jsonFile));
JsonNode valueNode = rootNode.get("key1");
// 각각의 데이터 형태에 따른 값
String value = valueNode.asText();
int intValue = rootNode.get("intValue").asInt();
boolean boolValue = rootNode.get("boolValue").asBoolean();
}
}
여러 객체로 이루어 진 경우
{
"object1": {
"key1": "value1",
"key2": "value2"
},
"object2": {
"key1": "value3",
"key2": "value4"
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) {
// JSON 파일 (request 데이터일 경우 request)
String jsonFile = "data.json";
// ObjectMapper 객체 생성
ObjectMapper objectMapper = new ObjectMapper();
// JSON 파일을 Java 객체로 읽기
JsonNode rootNode = objectMapper.readTree(new File(jsonFile));
// object1에 접근하기
JsonNode object1Node = rootNode.get("object1");
String value1 = object1Node.get("key1").asText();
String value2 = object1Node.get("key2").asText();
}
}
배열이 들어있는 경우
{
"array": [
{"key1": "value1"},
{"key1": "value2"}
]
}
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) {
// JSON 파일 (request 데이터일 경우 request)
String jsonFile = "data.json";
// ObjectMapper 객체 생성
ObjectMapper objectMapper = new ObjectMapper();
// JSON 파일을 Java 객체로 읽기
JsonNode rootNode = objectMapper.readTree(new File(jsonFile));
// object1에 접근하기
JsonNode arrayNode = rootNode.get("array");
for (JsonNode element : arrayNode) {
String value = element.get("key1").asText();
}
}
}
반응형
'개발 > Spring' 카테고리의 다른 글
[Spring/Java] curl 명령어로 HTTP 통신하기 (1) | 2024.04.20 |
---|---|
[Spring/Java] Spring 인터셉터 구현하기 (0) | 2024.04.20 |
[Spring/Java] 편의성 빼고 로그인 기능 구현하기 (JDBC, H2) (1) | 2024.04.18 |
[Spring/Java] JWT 토큰 사용하는 이유 및 구현 방법 (Feat. 세션/쿠키) (0) | 2023.11.23 |
[Spring/Java] CORS 이슈 처리 방법 (0) | 2023.11.21 |
댓글