Я работаю над ответом 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, так как сериализовать объект цены как строку, потому что это вызывает проблему, и ответ будет на функцию onFailure
вам нужно использовать настраиваемый конвертер, который заставляет вас анализировать определенную часть вашего json по назначению. взгляните на этот блог: обработка динамического формата json с модернизацией в android
@mohammadhoseinabedini хм, я не пробовал это решение, но думаю, что оно сработает. вместо поиска по переменной String сериализуйте JSONObject, чтобы захватить также поддерево.
кастомный конвертер решит вашу проблему




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