Jackson Json Mapper を使用して、サーバー上のクエリを解析します。
たとえば、クラスに適合するクエリを待っていますMy_class
:
class My_class {
String a;
String b;
}
この方法でクエリを逆シリアル化します。
public <T> T Deserialize(String json, Class<T> type) throws DeserializationException {
if (json == null || type == null) {
throw new IllegalArgumentException();
}
try {
return objectMapper.readValue(json, type);
} catch (JsonParseException e) {
throw new DeserializationException(e);
} catch (org.codehaus.jackson.map.JsonMappingException e) {
throw new DeserializationException(e);
} catch (IOException e) {
throw new DeserializationException(e);
}
}
クエリの例を 2 つ示します。
{"a":"test"}
{"a":"test", "b":null}
a
問題は、ユーザーがフィールドのみのクエリを送信したときと、フィールドb
が に設定されたクエリを送信したときを知りたいことですnull
。どちらの場合も、マッパーはフィールドb
をマークnull
します。
これを行う (そして、独自のデシリアライザーを作成しないようにする) ためのより良い方法は何ですか?