JSON 이란 ? (JavaScript Object Notation 의 약자로 데이터를 저장 및 교환하기 위한 방식)
텍스트로 이루어져 있고 데이터를 Key (키) : Value (값) 형태로 저장
Key는 문자열, Value는 문자열, 숫자, 배열, 객체 등 다양한 데이터 타입을 지원

 

// JSON 데이터 예시

{
  "name": "홍길동",
  "age": 33,
  "email": "hgd@example.com",
  "hobbies": ["영화보기", "책읽기", "달리기"],
  "address": {
    "street": "Dosan-daero",
    "city": "Seoul",
    "zipcode": "777-777"
  }
}

 

 

클라이언트단에서 DB와 통신하기 위해 데이터를 JSON 문자열 형식으로 전달받아

 

Java 의 List<Map<String, Object>> 형식으로 변환해야 하는 경우가 있다면

 

 Jackson 라이브러리를 활용하여 처리가 가능

 

 

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.List;
import java.util.Map;


// Json 형식의 문자열 데이터 예시
String jsonStr = "[{\"idx\":1,\"name\":\"John\",\"age\":28,\"email\":\"john@example.com\"},"
        + "{\"idx\":2,\"name\":\"Sarah\",\"age\":35,\"email\":\"sarah@example.com\"},"
        + "{\"idx\":3,\"name\":\"David\",\"age\":42,\"email\":\"david@example.com\"}]";

// 변환한 JSON 문자열 데이터를 담을 List<Map<String, Object>> 생성
List<Map<String, Object>> jsonDataList = new ArrayList<Map<String, Object>>();

// JSON 데이터를 Java 객체로 변환하거나, Java 객체를 JSON 데이터로 변환할 수 있도록 하는 역할
ObjectMapper objectMapper = new ObjectMapper();

try {
   // .readValue() => JSON 문자열을 Java 객체로 변환
   jsonDataList = objectMapper.readValue(jsonStr, new TypeReference<List<Map<String, Object>>>() {});
   // new TypeReference<> 안에 변환한 데이터를 담을 변수의 타입을 지정
} catch (JsonMappingException e) {
    e.printStackTrace();
} catch (JsonProcessingException e) {
    e.printStackTrace();
}

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기