良い時間!
たとえば、json文字列:{id:'a', type:'b', category:'c'}
があり、ビジネスロジックでは、カテゴリオブジェクトを作成するには、カテゴリ名('c')とタイプ('b')を知る必要があります。明らかに、カテゴリ用にカスタムデシリアライザー(@JsonDeserialize(using = CategoryCustomDeserializer.class)
)を作成する必要があり、カテゴリの名前を取得するのは簡単ですが、型の値を取得する方法がわかりません...これを試しましjsonParser.getCodec().readTree(jsonParser)
たが、null
。
正しい方法を提案してください。
編集:これがデシリアライザーです:
public class CategoryNameDeserializer extends JsonDeserializer<Category> {
@Override
public Category deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
if (jp.getCurrentToken() != JsonToken.END_OBJECT) {
String categoryName = jp.getText();
String type = ?????? <------------------------ How to do it
return Service.getInstance().getCategory(categoryName, type);
}
return null;
}
}