Вот (часть) ответа сервера:Джексон спутать поле объекта с JsonTypeInfo.Id.NAME
{
"ok": true,
"result": [
{
"update_id": 489881706,
"message": {
"message_id": 5,
"from": {
"id": 188474643,
"first_name": "Alireza",
"last_name": "Mohamadi",
"username": "SuNova"
},
"chat": {
"id": 188474643,
"first_name": "Alireza",
"last_name": "Mohamadi",
"username": "SuNova",
"type": "private"
},
"date": 1462608191,
"text": "1"
}
}
]
}
Я создал Result
класс, который, как (Обработанный уменьшить код):
public class Result
{
private TObject[] result;
private boolean ok;
public void setOk (boolean ok) //Rest of the code
public void setResult (TObject[] result) //...
public TObject[] getResult() //...
public boolean getOk() //...
}
И у меня есть Abstract Class
называется TObject
:
@JsonTypeInfo (use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
@JsonSubTypes ({
@JsonSubTypes.Type (name = "chat", value = Chat.class),
@JsonSubTypes.Type (name = "message", value = Message.class),
@JsonSubTypes.Type (name = "message_entity", value = MessageEntity.class),
})
public abstract class TObject
{
int update_id;
boolean isUpdate;
public void setUpdate_id (int update_id)
{
this.update_id = update_id;
isUpdate = true;
}
public int getUpdate_id()
{
return update_id;
}
}
проблема это, потому что я использовал
@JsonTypeInfo (use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
он не распознает update_id
как поле, вместо этого он признает его как JsonTypeInfo.Id.NAME
и показывает мне:
com.fasterxml.jackson.databind.JsonMappingException: Could not resolve type id 'update_id' into a subtype of [simple type, class org.telegram.objects.TObject]: known type ids = [TObject, chat, message, message_entity]
Теперь, пожалуйста, скажите мне, как я могу сказать Джексону разобрать update_id
как поле TObject
и не путать его, как JsonTypeInfo.Id.NAME
?
Я отредактированный вопрос и усовершенствовали его. Теперь я думаю, что это не более расплывчато. –