두 손끝의 창조자

gson json 데이터 타입별 역직렬화 하기 registerTypeAdapter 본문

프로그래밍

gson json 데이터 타입별 역직렬화 하기 registerTypeAdapter

codinglog 2022. 11. 6. 16:55
Gson gson = new GsonBuilder()
        .registerTypeAdapter(new TypeToken<Table<CompanyInfo>>() {
        }.getType(), (JsonDeserializer<Table<CompanyInfo>>) (element, typeOfT, context) -> {
            if (element.isJsonPrimitive()) {
                return new Table<>(Collections.emptyList());
            } else {
                JsonElement jsonElement = ((JsonObject) element).get("T_DATA");
                if (jsonElement.isJsonObject()) {
                    CompanyInfo deserialize = context.deserialize(jsonElement, CompanyInfo.class);
                    return new Table<>(Collections.singletonList(deserialize));
                } else {
                    List<CompanyInfo> deserialize = context.deserialize(jsonElement, new TypeToken<List<CompanyInfo>>() {
                    }.getType());
                    return new Table<>(deserialize);
                }
            }
        }).create();

 

반응형
Comments