ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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형태로 읽어서 위 방법으로 오브젝트 형태로 변환이 가능하다

    댓글

Paycis's