問題タブ [java-custom-serialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
13884 参照

java - 一時的なキーワードを指定する以外に、シリアル化から Java オブジェクトを拒否できますか

transientキーワードを使用して、フィールドのシリアル化を回避できます。それを行う他の方法はありますか?

0 投票する
1 に答える
2361 参照

java - writeObject と readObject はどのように機能しますか?

JDK 6.0 のソース コードを読んだとき、これら 2 つのメソッドが ArrayList にあることがわかりました。どちらも非公開であることがわかります。しかし、検索した後、それらのいずれかを呼び出す他のメソッドは見つかりませんでした。ネイティブメソッドも検討しましたが、まだ見つかりませんでした。これら 2 つのメソッドは IO を処理しているように見えますが、呼び出されることはありません。

それで、私の質問は、それらはどのように機能するのですか? プライベート メソッドを呼び出す他の方法はありますか?

0 投票する
1 に答える
522 参照

java - ドメイン Bean の外部で Jackson カスタム シリアライゼーションを実装する方法は?

私はSpringマネージドBeanを持っています...

...そして、Dojo Dgrid を使用してこの Bean の ArrayList を表示しているので、JSON 文字列としてコントローラーに返しています。

ただし、私のグリッドには、Foo ごとに有効なアクションを含む追加の列が必要です。そのアクションは、個々のFooのデータに実際には依存していません-それらはすべて同じ有効なアクションを持ちます-結果のDGridの各行で繰り返されます-しかし、その値は実際にはセッションのセキュリティロールに依存しています... Json でフロントエンドに送信することはできません。したがって、私の解決策は2つあります。

  1. 最初に、「仮想」Json プロパティを Bean に追加する必要があります。これは、メソッドで @JsonProperty を使用して Bean で実行できます...

    /li>
  2. ...しかし、プレースホルダーを生成するだけです。有効な値を実際に生成するには、セッションのセキュリティ ロールを参照する必要がありますが、上記の方法でコーディングするのは非常に気が進まないのです。(ドメイン Bean 自体でのサービス呼び出し? 非常に間違っているようです。) カスタム シリアライザーを作成し、ロジックを配置する必要があると思います。また、Session.Security ロールへの参照をそこに配置します。セッション情報をドメイン Bean メソッドに注入しないという私の本能は正しいのでしょうか? もしそうなら、そのよう
    なカスタムシリアライザーはどのように見えるでしょうか?