-
json을 자바 객체로 변환하기Java 2021. 5. 20. 19:30
json형태의 파일 또는 텍스트를 자바 오브젝트로 변환하는 방법을 남깁니다.
json을 자바 Object로 변환
간단하게 Member Class를 만들었습니다.
//Member Class public class Member { private String id; private String name; private int age; public String getId(){ return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "{id:"+id+",name:"+name+",age:"+age+"}"; } }
그리고 json문자열과 TestMain CLass입니다.
public class JsonToObjList { public static void main(String[] args) { //json List -> java List<Member> String jsonList="[" + "{id:oldman1,name:kimsuy,age:78}" + ",{id:oldman2,name:parkyul,age:67}" + "]"; //json List를 자바 ObjectList로 받기위해 필요 Type typeList = new TypeToken<ArrayList<Member> >(){}.getType(); List<Member> memberList = new Gson().fromJson(jsonList, typeList); for(Member iter : memberList) { System.out.println(iter.toString()); } //json -> Member Object String json="{id:oldman3,name:yonghuk,age:55}"; Member member = new Member(); member = new Gson().fromJson(json,Member.class); System.out.println(member.toString()); } }
소스를 보면
Gson().fromJson();
메서드를 통해 json 데이터를 자바Object로 변환한다.fromJson()
메서드는 변환할 json문자열과 변환할 오브젝트 클래스를 인자로 받는다. 한 건에 대해서는 클래스명을 지정하면 되지만, 문제는 List형태의 데이터를 받을때 생긴다. 아직까지Type typeList = new TypeToken<ArrayList<Member>>(){}.getType();
의 정확한 사용이유는 모르겠지만 리스트형태의 클래스타입을 전달하기 위해선 이 방법을 통해 가능하다. (나중에 따로 정리를 해야겠다)일반 텍스트 파일에 json데이터를 넣고
String
형태로 읽어서 위 방법으로 오브젝트 형태로 변환이 가능하다'Java' 카테고리의 다른 글
자바 - SRP (Single Responsibility Principle, 단일책임원칙) (0) 2023.11.22 자바 - OCP (Open Closed Principle / 개방-폐쇄원칙) (0) 2023.11.22 BufferedReader, BufferedWriter (0) 2021.05.21 visualVM으로 remote host 모니터링하기 (0) 2021.05.17 Stream, 왜 재사용 할 수 없을까 (1) 2021.03.01