mingg IT

[스프링] Object Mapper 예제 본문

BackEnd

[스프링] Object Mapper 예제

mingg123 2021. 6. 20. 17:34
{

"name": "홍길동",

"age": 10,

"cars": [

{

"name": "K5",

"car_number": "11가 1111",

"TYPE": ""

},

{

"name": "Q5",

"car_number": "11가 2222",

"TYPE": ""

}

]

}

 

 

String json = objectMapper.writeValueAsString(user);

System.out.println(json);



JsonNode jsonNode = objectMapper.readTree(json);

String _name = jsonNode.get("name").asText();

int _age = jsonNode.get("age").asInt();



System.out.println("name : " + _name);

System.out.println("age : " + _age);





//List를 읽어오는 방법

JsonNode cars = jsonNode.get("cars");

ArrayNode arrayNode = (ArrayNode)cars;



//Object 를 원하는 형태로 바꿀 수 있음

//Json의 표준 스펙을 알아야함. array노드는 위와 같이 사용.

List<Car> _cars = objectMapper.convertValue(arrayNode, new TypeReference<List<Car>>(){}

);

 

 

즉 리스트 형태가 아닌경우 읽어올때는 objectMapper.writeValueAsString 로  바꾼 이후

 

objectMapper의 readTree를 이용하여 jsonNode의 get 메소드를 통해 읽어온다.

 

 

리스트인 경우에는

jsonNode의 get 메소드를 이요해 읽어온 후 ArrayNode로 변경하고 arrayNode를 원하는 클래스 형태로 바꾼후 사용한다. 

List<Car> _cars = objectMapper.convertValue(arrayNode, new TypeReference<List<Car>>(){});

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments