/**
//-----------------------------------
// Entity 클래스 : 값을 넣고 빼기 위한 용도의 클래스
// - VO : Value Object(읽기)
// - DTO : Data Transfer Object(읽기/수정)
//
// private int num;
// setter() : 넣기 --> get+프로퍼티명()
// getter() : 꺼내기 --> set+프로퍼티명()
//-----------------------------------
*/
! (EMPNAME, EMPNO, SAL) = (”SMITH”, “7733”, “600”) 인 튜플을
List<Map<String,String>> 으로 담고, for문을 활용하여 출력하는 코드를 작성하라.
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class EmpTest {
public static void main(String[] args){
List<Map<String,String>> empVO = new ArrayList<>();
String[] columns = new String[]{"empno", "ename", "sal"};
String[][] values = {
{"7733", "smith", "600"}
};
for(int i = 0; i < values.length; i++){
empVO.add(new HashMap<>());
for(int j = 0; j < columns.length; j++){
empVO.get(i).put(columns[j], values[i][j]);
}
}
for(int i = 0; i < empVO.size(); i++){
Map<String, String> currTuple = empVO.get(i);
for(String key : currTuple.keySet()){
System.out.println(key + " : " + currTuple.get(key));
}
}
}
}
이를 활용하여 JSON 형식의 데이터를 읽을 수 있다.
**MAVEN**
에서 가져오면 된다. ( JDK 자체가 지원하지 않는 API들.. )JSONObject
, JSONParser
JSONParser jsonParser = new JsonParser();
JSONObject map = (JSONObject) jsonParser.parse(parse(strJson));
**com.fasterxml.jackson.databind.ObjectMapper;**
ObjectMapper mapper = new ObjectMapper();
HashMap map = mapper.readValue("UTF-8", HashMap.class);
나중에 Spring에서 maven, gradle이 자동으로 다운로드 받는 버전과 충돌이 날 수도 있다.
외부 Library를 직접 JDK에 넣지 말고, etc/jar 라는 폴더를 만들어서 환경 격리 해준 이유이다.
→ VO를 사용해야하는 이유.
서로 import 안해도 된다.
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
public class JacksonTest {
public static void main(String[] args) {
// EmpVO (1) : str --> EmpVO
ObjectMapper objectMapper = new ObjectMapper();
String jsonStr =
"{\"ename\":\"smith\", "
+ "\"empno\":\"7733\", "
+ "\"sal\":\"600\"}";
try {
EmpVO evo = objectMapper.readValue(jsonStr,EmpVO.class);
System.out.println(evo);
} catch(JsonProcessingException e){
System.out.println("objectMapper.readValue() 실패");
e.printStackTrace();
}
HashMap<String, String> map = new HashMap<>();
// HashMap : str --> HashMap
try {
map = objectMapper.readValue(jsonStr, HashMap.class);
} catch(JsonProcessingException e) {
System.out.println("objectMapper.readValue() 실패");
e.printStackTrace();
}
// map --> str
System.out.println(map);
// Jackson : Factory , Config가 뭘 하는가.
// Jackson API
}
}