8

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します。

これを行う (そして、独自のデシリアライザーを作成しないようにする) ためのより良い方法は何ですか?

4

1 に答える 1