как преобразовать строку в карту, используя Джексона в Котлине - PullRequest
0 голосов
/ 20 сентября 2019

Я собираюсь получить эти данные JSON

{
    "2019-09-01": {
        "isBusinessDay": true,
        "hasBusinessDays": true,
        "isSaleDay": true,
        "stock": 1920,
        "bookingCount": 0,
        "todayDealRate": 0.0,
        "minBookingCount": 1,
        "maxBookingCount": 1,
        "startTime": null,
        "endTime": null,
        "prices": [
            {
                "isDefault": true,
                "priceId": 0,
                "name": "",
                "price": 5000,
                "order": 1,
                "isImp": true
            }
        ]
    },
    "2019-09-02": {
        "isBusinessDay": true,
        "hasBusinessDays": true,
        "isSaleDay": true,
        "stock": 1920,
        "bookingCount": 0,
        "todayDealRate": 0.0,
        "minBookingCount": 1,
        "maxBookingCount": 1,
        "startTime": null,
        "endTime": null,
        "prices": [
            {
                "isDefault": true,
                "priceId": 0,
                "name": "",
                "price": 5000,
                "order": 1,
                "isImp": true
            }
        ]
    },
    ...
    ...
    ...
}

Я сделал два класса,

один -

data class DailySchedule (
        val isBusinessDay: Boolean,
        val hasBusinessDays: Boolean,
        val isSaleDay : Boolean,
        val stock: Long
)

другой -

data class DailyScheduleMap(
        val data:HashMap<String,DailySchedule>
)

основная функция -

fun main
    val obj = mapper.readValue(body, DailyScheduleMap::class.java)

    for((key,value) in obj.data)
    {
        println("$key ${value.stock}")
    }

тело - строка json.

, но это не очень хорошо работает.

Я хочу сохранить данные json в класс в kotlin.

Как сохранить данные JSON на карте?

И у меня есть еще один вопрос,

Я хочу получить только те данные, которые мне нужны, из этих данных.

например,

"2019-09-01": {
        "isBusinessDay": true,
        "hasBusinessDays": true,
        "isSaleDay": true,
        "stock": 1920,
        "bookingCount": 0,
        "todayDealRate": 0.0,
        "minBookingCount": 1,
        "maxBookingCount": 1,
        "startTime": null,
        "endTime": null,
        "prices": [
            {
                "isDefault": true,
                "priceId": 0,
                "name": "",
                "price": 5000,
                "order": 1,
                "isImp": true
            }
        ]
    }

Среди этих данных

        val isBusinessDay: Boolean,
        val hasBusinessDays: Boolean,
        val isSaleDay : Boolean,
        val stock: Long

Это все, что мне нужно в этих данных.

Можно ли просто объявитьтребуемые данные?

Интересно, вот и все или мне нужно что-то еще сделать.

Всегда Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...