でオブジェクトフィールドを間違えているが(の一部)サーバーの応答です:ジャクソンはここ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() //...
}
そして私はTObject
と呼ばれるAbstract Class
を持っている:
@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.Id.NAME
としてそれを認識してくれ示している、フィールドとしてupdate_id
を認識していない
@JsonTypeInfo (use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
を使用しているため、次のとおりです。
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]
今、私がジャクソンを伝えることができる方法を教えてくださいをフィールドTObject
として解析し、それをJsonTypeInfo.Id.NAME
と混同しないでください。
を追加します。今私はそれが曖昧ではないと思う。 –