Jackson が一時的なフィールドをシリアル化できるようにするための構成をサポートしているとは思いません。その機能を追加するための未解決の問題がありますが、それは古く、対処されていません (私が知る限り): http://jira.codehaus.org/browse/JACKSON-623
だから私の質問は: すべてのオブジェクト フィールドをシリアル化するように jackson をセットアップする方法はありますか? 一時的なものを含みます。
あなたの質問に答えるには、いいえ。
GSON などの他の Java JSON ツールは、一時的なフィールドをシリアル化するための構成オプションをサポートしています。別のツールを使用できる場合は、それを調べることができます (GSON については、https ://sites.google.com/site/gson/gson-user-guide を参照してください)。
少し拡張するには、別のアプローチを試すことができます。
まず、一時的なフィールドをシリアル化しようとしないでください。結局のところ、一時的な定義は「これをシリアライズしないでください」です。それにもかかわらず、それが必要な、または少なくとも便利な (変更できないコードを操作する場合など) いくつかの特定の状況を考えることができます。それでも、99% の場合、答えはそうしないことです。シリアル化する必要がある場合は、一時的でないようにフィールドを変更します。同じフィールドを使用する複数のコンテキストがあり、1 つのフィールド (JSON など) でシリアライズし、別のフィールド (java.io など) ではシリアライズしない場合は、カスタム シリアライザーを作成する必要があります。キーワードを乱用するのではなく、それを望まない.
第二に、ゲッターを使用し、「オブジェクトの状態を変更するいくつかのゲッター」を持つことに関しては、それも避けるようにしてください。それは、さまざまな意図しない結果につながる可能性があります。そして、技術的には、それはゲッターではなく、セッターです。つまり、状態を変更する場合、「get」規則に従って名前を付けて何かを返す場合でも、アクセサー (ゲッター) ではなくミューテーター (セッター) を持っているということです。