Complex Json, ObjectMapper

BB·2023년 1월 4일
0
{
    "status": "0000",
    "data": {
        "BTC": {
            "opening_price": "21517000",
            "closing_price": "21624000",
            "min_price": "21470000",
            "max_price": "21641000",
            "units_traded": "360.37533782",
            "acc_trade_value": "7771380624.2823",
            "prev_closing_price": "21520000",
            "units_traded_24H": "2362.42758535",
            "acc_trade_value_24H": "50761811806.4822",
            "fluctate_24H": "244000",
            "fluctate_rate_24H": "1.14"
        },
        "ETH": {...},
        "ETC": {...},
        ...
        "date" : "20230101"
   }
}

다음과 같은 Json을 받으면

@Data
public class CryptocurrencyJsonDto {
    @JsonProperty("status")
    private String status;

    @JsonProperty("data")
    private CryptocurrencyPriceInfo cryptocurrencyPriceInfo;

    public class CryptocurrencyPriceInfo{

        private HashMap<String, CryptocurrencyJsonPriceDataDto> fileds = new HashMap<>();

        @JsonProperty("date")
        private String date;

        @JsonAnySetter
        public void setFiled(String field, CryptocurrencyJsonPriceDataDto value) {
            fileds.put(field, value);
        }

        @JsonAnyGetter
        public HashMap<String, CryptocurrencyJsonPriceDataDto> getFields() {
            return fileds;
        }
}

@Data
public class CryptocurrencyJsonPriceDataDto {
    private String opening_price;
    ...
}

내부 클래스를 만들어 저장하기

profile
공부

0개의 댓글