問題タブ [jackson-modules]

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 投票する
3 に答える
13629 参照

jackson - Spring Boot の追加の Jackson モジュールが同じバージョンであることを確認するにはどうすればよいですか?

Spring Boot には、Jackson の主要な依存関係とその他いくつかの依存関係が既に含まれています。

たとえば、org.json または jsr-353 データバインディング モジュールを追加する場合は、これらの追加モジュールのバージョンを明示的に定義します。

他の Jackson モジュールの同じバージョンを参照する方法はありますか? 互換性の問題を回避したい。

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

java - マップのシリアル化のための Jackson モジュール

Map (非文字列キー) とその他のフィールドを含むクラスがあります。

Jackson を使用して、このクラスをシリアライズおよびデシリアライズしたいと思います。私はそれを行う別の方法を見て、 jackson モジュールを使用してみることにしました。

この投稿に従って、JsonDeserializer と JsonSerializer を拡張しました。問題は、これらのクラスを型付けする必要があることです。したがって、次のようになります。

KeySerializer についても同様です。

次に、モジュールに追加します。

しかし、例外が発生しているため、これは明らかに間違っています:

シリアライザーとデシリアライザーをMyClassに入力することもできましたが、そのすべてを手動で解析する必要があり、これは合理的ではありません。

アップデート:

注釈を使用して、コード内でモジュールの作成を回避することができました

しかし、toString() 出力から自分でマップ構造全体をシリアライズ/デシリアライズする必要があります。そこで、別の注釈を試しました:

MyKeyDeserializer が拡張org.codehaus.jackson.map.KeyDeserializerされ、メソッドをオーバーライドする場所

次に、キークラスの toString() 出力から手動でキーをデシリアライズします。

これは最適ではありません (この toString() メソッドへの依存関係)。より良い方法はありますか?

0 投票する
5 に答える
27983 参照

java - jackson - 遅延オブジェクトをシリアライズしない

私はエンティティを持っています:

次に、本を取得することを目的としたコントローラーがあります。私の問題は、コントローラーのjson応答にジャンルフィールドが含まれていることです。ジャクソンがオブジェクトをシリアル化するときに遅延ロードされるフィールドを除外する方法はありますか?

これは私の ObjectMapper の構成です:

ありがとう!

シリアライゼーションボックスから永久に取り出されるため、JsonIgnore としてマークすることはできません。本と一緒にジャンルを取得する必要がある場合もありますが、それまでにクエリで "fetch join" を使用して null にならないようにします。

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

java - Jackson を使用して Java でカスタム JSON スキーマを生成する

私はこれが初めてで、POJO/Bean にパラメーターがネストされている場合のユースケースに苦労しています。

要件-

ネストされたオブジェクトの構造を適切に含み、ネストされた pojo にカスタム属性を追加したい (私の場合は、ネストされた POJO パラメータごとに完全に分類された classname 属性)。

ユースケース-

たとえば、次の Person クラスがあるとします。そして、私はこの人をいくつかの操作のパラメータとして使用しています.-

たとえば、現在、上記の Person クラスがパラメーターとして使用されている場合、これは次の JSON スキーマを生成します -

Person クラスには、 MAPARRAYなどの複数値のデータ構造があり、ネストされたPOJOを持つこともできます。したがって、これらのタイプのBEAN/POJOクラスの JSON スキーマを生成したくありません。また、完全に分類された classname を持つ、ネストされたPOJO/BEANごとに「classname」ノードを配置したいと考えています。

私はこれについて多くのことを経験していますが、Jackson を使用してこの種の状況の省略形を理解することができません。

ここで注意すべき要件は、ネストされた POJO 属性スキーマに「classname」属性を配置することです。

この質問は間違いなくこれに関連しています - How to traverse generated json schema using jackson and put custom attribute in json schema

0 投票する
0 に答える
909 参照

json - hibernate バリデータアノテーションに基づく Json 検証スキーマの生成

休止状態のバリデータ アノテーションで注釈を付けた POJO があります。

この POJO から、次のようなスキーマを生成できるようにしたいと考えています。

これを行うことができるライブラリはありますか?

https://github.com/FasterXML/jacksonを見ていますが、すぐに使用できるサポートはありません。

ポインタは大歓迎です!ありがとうございました!

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

java - Jackson: json スキーマは他のスキーマを参照しています。これを無効にできますか?

Jackson Json-Schema-Module を使用すると、相互に参照されている参照を使用してスキーマが生成されます。

次のスキーマを検討してください。

これは POJO1 内のプロパティ オブジェクトです

POJO2 内に同じプロパティ オブジェクトがあり、両方のスキーマが生成されると、POJO2 で次のようになります。

しかし、POJO2'a スキーマのこのプロパティを POJO1 のスキーマと同じにしたいのですが、参照は必要ありません。これを無効にすることはできますか? または回避策はありますか?

私が使用するコードは次のとおりです。

最初は、スキーマの構築ごとに異なる ObjectMapper インスタンスを使用すると、必要なものが得られると思いましたが、そうではないようです。明らかに何らかのキャッシュがあり、そのようなことに関する私の知識は、正しい結論に達するのに十分ではありません。

ありがとう!