개발/JAVA

array형 json string값을 object로 변환할때 ( json string array to object)

보리ing 2021. 3. 17. 16:11

 {"id" : "아이디", "name" : "이름"} 과 같이 json 형태의 string을 object로 변환하는 것은 obejct mapper로 간단하게

변환할 수 있다.

 

String userStr =  "{"id" : "아이디", "name" : "이름"}";
ObjectMapper objectMapper = new ObejctMapper();
User user = objectMapper.readValue(userStr, User.class);

 

하지만 [ {"id" : "아이디", "name" : "이름"}, {"id" : "아이디", "name" : "이름"}] 와 같이 array인 형태는 어떻게 해야할까?

list형태로 생각되어 List<Object>로 변환하려 하였으나 잘 되지 않았다.

 

->

List<Object>가 아닌 Object[] 받으면 된다. 겉보기엔 리스트와 구분되지 않아 리스트로 바로 변환하려고 하면 문제가 되는 것이다.

 

String userArray =  "[{"id" : "아이디", "name" : "이름"}, {"id" : "아이디", "name" : "이름"}]";

User[] users = objectMapper.readValue(userArray. User[].class);
또는
List<User> userList = Arrays.asList(objectMapper.readValue(userArray, User[].class));