27

null プロパティを含み、JsonMappingException.

私がやること:

String actual = "{\"@class\" : \"PersonResponse\"," +
                "  \"id\" : \"PersonResponse\"," +
                "  \"result\" : \"Ok\"," +
                "  \"message\" : \"Send new person object to the client\"," +
                "  \"person\" : {" +
                "    \"id\" : 51," +
                "    \"firstName\" : null}}";
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(new StringReader(json), PersonResponse.class); //EXCEPTION!

BUT :"firstName = null"プロパティを破棄する場合 - すべて正常に動作します! つまり、次の文字列を渡します。

String test = "{\"@class\" : \"PersonResponse\"," +
                "  \"id\" : \"PersonResponse\"," +
                "  \"result\" : \"Ok\"," +
                "  \"message\" : \"Send new person object to the client\"," +
                "  \"person\" : {" +
                "    \"id\" : 51}}";
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(new StringReader(json), PersonResponse.class); //ALL WORKS FINE!

質問: この例外を回避する方法、またはシリアライゼーション中に Jackson が null 値を無視することを保証する方法は?

スロー:

メッセージ:

com.fasterxml.jackson.databind.MessageJsonException:
 com.fasterxml.jackson.databind.JsonMappingException:
  N/A (through reference chain: person.Create["person"]->Person["firstName"])

原因:

com.fasterxml.jackson.databind.MessageJsonException:
 com.fasterxml.jackson.databind.JsonMappingException:
  N/A (through reference chain: prson.Create["person"]->Person["firstName"])

原因: java.lang.NullPointerException

4

4 に答える 4

21

値をシリアライズしたくない場合はnull、(シリアライズ中に) 次の設定を使用できます。

objectMapper.setSerializationInclusion(Include.NON_NULL);

これで問題が解決することを願っています。

しかし、逆シリアル化中に得られるものは私には疑わしいようです (Jackson は理想的には、シリアル化された出力の値NullPointerExceptionを処理できるはずです)。クラスnullに対応するコードを投稿できますか?PersonResponse

于 2013-08-07T07:03:08.360 に答える