Сериализовать другие поля при модернизации на основе значения поля

Я работаю над ответом json с модификацией, и у него есть поле, названное по типу в объекте json цены с 3 случаями: бесплатный, статический и динамический. в каждом случае ответ будет таким:
1. статический:

{
"status": 200,
"message": "Course Details Successful",
"data": {
    "id": 204,
    "title": "اصول حسابداری2",
    "price": {
        "type": "static",
        "value": {
            "price": "600000",
            "rebate": 0
        },
        "expire": "2018/01/18"
    }
}
}

2. динамика:

{
"status": 200,
"message": "Course Details Successful",
"data": {
    "id": 18,
    "title": "دوره کامل و حرفه ای اکسل (50 ساعت)",
    "price": {
        "type": "dynamic",
        "value": {
            "2017-07-18 23:59:59": "165000",
            "2017-08-18 23:59:59": "125000"
        },
        "titles": [
            "دانشجویان دانشگاه تهران (داشبورد)",
            "سایر علاقه مندان (داشبورد)"
        ],
        "main_value": "165000",
        "max_discount": "80"
    }
}
}

3. бесплатно:

{
"status": 200,
"message": "Seminar Details Successful",
"data": {
    "id": 204,
    "title": "کنفرانس ملی برجام - بهمن 95",
    "price": {
        "type": "free",
        "value": "0",
        "expire": null
    }
}
}

Я хочу получить эти три ответа и сериализовать другие значения в соответствии со значением типа без изменения основного pojo. Но я понятия не имею, как это сделать. Я использую дооснащение для анализа данных в своем приложении.

вы можете сериализовать только родительские данные и выполнить синтаксический анализ вручную.

pastillas 14.03.2018 03:00

@pastillas, так как сериализовать объект цены как строку, потому что это вызывает проблему, и ответ будет на функцию onFailure

mohammad hosein abedini 14.03.2018 04:48

вам нужно использовать настраиваемый конвертер, который заставляет вас анализировать определенную часть вашего json по назначению. взгляните на этот блог: обработка динамического формата json с модернизацией в android

Mahdi Javaheri 14.03.2018 05:55

@mohammadhoseinabedini хм, я не пробовал это решение, но думаю, что оно сработает. вместо поиска по переменной String сериализуйте JSONObject, чтобы захватить также поддерево.

pastillas 14.03.2018 10:15

кастомный конвертер решит вашу проблему

pastillas 14.03.2018 10:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
121
0

Другие вопросы по теме