본문 바로가기
Android

asset 폴더의 json파일을 가져와서 gson으로 적용하는 방법

by 루에 2015. 2. 17.
반응형

json파일을 이용해 데이터를 다룰 때, 서버가 아니라 assets폴더에 넣어 사용하는 방법


의외로 gson과 asset 데이터를 같이 쓰는 예제가 없어 많이 찾아 헤맸다.


간단하게 서술하자면,


assetManager 클래스를 이용해 json 파일을 가져온 뒤,


inputStream객체에 데이터를 넣고 Gson객체를 만든 뒤


Reader객체에 담아 json 데이터를 넣을 객체에 fromJson()을 이용해 넣는다.



Source


MainActivity.java


 AssetManager assetManager = getResources().getAssets();    // 리소스를 받아온다

        

        InputStream source = null;    // inputStream객체 생성


        try {

            source = assetManager.open("a.json");    // assets폴더의 a.json 파일을 가져온다

        } catch (IOException ie) {

            ie.printStackTrace();

        }

        Gson gson = new Gson();

        Reader reader = new InputStreamReader(source);    // 데이터를 Reader에 담는다


        A a = gson.fromJson(reader, A.class);    // fromJson()으로 A 객체에 데이터 넣는다.

        aMapping(ret, A);




    public void aMapping(View view, A info) {

// 데이터 맵핑

        ((TextView) view.findViewById(View_ID)).setText(info.title);

    }


A.java


public class A {

    @SerializedName("id")    // 데이터의 이름을 json key와 맞추거나 @SerializedName 에 key값을 맵핑한다

    public String data;

}

반응형

댓글