모바일 프로그래밍/안드로이드 프로그래밍

AndroidStudio-Gson으로 Json정리하기

zelkova 2020. 3. 24. 18:33

<목차로 돌아가기>


Gson 사용방법



Gradle에 추가하기

    implementation 'com.google.code.gson:gson:2.8.5'


테스트 JSON파일

album.json


json 파일 변환예제




"title" : "BINGLE BANGLE"


    private String title;

    

    public String getTitle() {

        return title;

    }


    public void setTitle(String title) {

        this.title = title;

    }


json 파일 변환예제

"song" :

[

"빙글뱅글 (BINGLE BANGLE)",

"Super Duper",

"HEAT", "Ladi Dadi",

"파르페",

"뚜뚜뚜"

],


    private ArrayList<String> song;

    public ArrayList<String> getSong() {

        return song;

    }


    public void setSong(ArrayList<String> song) {

        this.song = song;

    }



아래는 귀찮...

private ArrayList<ChildHouseVO.Data> childHouses;

public static class Data implements Parcelable {


}


json 파일 변환예제



Gson 소스


asset폴더 생성



asset폴더에 아래의 파일추가

album.json


VO파일 생성

AlbumVO.java


gsonController 제작

GsonController.java


gson 사용

MainActivity.java


참조 : https://re-build.tistory.com/41

참조 : https://recipes4dev.tistory.com/125





기타 소스

JavaScriptDeserilizer


    public static class JavaScriptDeserilizer implements JsonDeserializer<JavaScriptGson> {

        @Override

        public JavaScriptGson deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {

            if (json.isJsonPrimitive()) {

                return null;

            }

            LogHelper.log(getClass().getName(), ",  json : " + json.toString());


            JsonObject jsonObject = json.getAsJsonObject();

            if (jsonObject.getAsJsonObject().get("data") !=null && jsonObject.getAsJsonObject().get("data").isJsonArray()) {

                jsonObject.add("arrdata", jsonObject.getAsJsonObject().get("data"));

            } else {

                jsonObject.add("strdata", jsonObject.getAsJsonObject().get("data"));

            }

            return new Gson().fromJson(jsonObject, JavaScriptGson.class);

        }

    }



<목차로 돌아가기>

반응형