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>>(){});