JsonNullable オブジェクトは常に isPresent 値 = true になります。

PHPz
リリース: 2024-02-08 22:42:27
転載
649 人が閲覧しました

JsonNullable は PHP でよく使われるオブジェクトで、isPresent 値が常に true になるという特徴があります。これは、JsonNullable オブジェクトが null であるかどうかに関係なく、存在するとみなされることを意味します。 PHP エディターの Xinyi は、次の記事で JsonNullable オブジェクトの使用法と特性を調査し、その isPresent 値が常に true である理由を説明します。 JsonNullable オブジェクトを深く理解することで、PHP 開発におけるその用途と利点をより深く理解できるようになります。

質問内容

json形式のファイルがあります。テストで使用する json オブジェクトが保存されます。 objectmapper を使用してこのファイルをオブジェクトに変換したところ、問題なく変換されましたが、問題が発生しました。オブジェクト内のすべてのフィールドのラッパー タイプは jsonnullabel です。問題は次のとおりです。すべての jsonnullabel オブジェクトは、null 属性値が含まれている場合でも、存在 = true です。したがって、「orelse」メソッドと「ispresent」メソッドは正しく機能しません。ンペをもらいました。文字列または JSON ファイルから変換するときに、内部に null 値がある場合に、これらのフィールドが「false」に等しいことを確認するにはどうすればよいですか?

json の例:

65bee5661098c

オブジェクトマッパーのこの構成を試してみました。 オブジェクト マッパー構成:

ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.registerModule(new JavaTimeModule());
    objectMapper.registerModule(new Jdk8Module());
    objectMapper.registerModule(new JsonNullableModule());
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    objectMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
ログイン後にコピー

回避策

クラス メンバーで @jsondeserialize jackson annotation を使用してみてください。json では注釈が null になる可能性があり、代わりに値を "false" にしたいとします。 null の場合は次のようになります:

リーリー

以上がJsonNullable オブジェクトは常に isPresent 値 = true になります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート