問題タブ [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.
java - jackson-dataformat-xml で xml ではなく json のフィールドのみを無視する
モジュールを使用Jackson
すると、と の両方にシリアル化できます。私のオブジェクトには、シリアル化するだけでシリアル化する必要がないいくつかのフィールド (xml 属性)があります。アノテーションを適用すると、フィールドは であっても完全に無視されます。jackson-dataformat-xml
POJO
JSON
XML
XML
JSON
@JsonIgnore
@JsonXMLProperty
のフィールドのみを無視するにはどうすればよいJSON
ですXML
か?
json - d3js 国 JSON での Jackson ObjectMapper 変換の問題
Jackson APIを使用して、Github からこのJSONリストをデシリアライズしたいと考えています。
配列内で配列の使用を開始すると、例外が発生します。このマッピングを学ぶのに、どのような体でも助けることができますか。
Java コード : ポジョ
クラスもテスト
json - Jackson ObjectMapper からモジュールを登録解除する方法はありますか?
に登録KeyDeseriliser
していObjectMapper
ます。読んだ後JSON
、このモジュールの登録を解除したいと思います。myObjectMapper
は静的であり、このモジュールを他の場所で使用したくないためです。
hibernate - Jackson は、遅延ロードされたオブジェクトをシリアライズしようとし、「 org.hibernate.LazyInitializationException - 遅延初期化に失敗しました ...」をスローします。
私の環境
- ジャクソン-データ型-休止状態 2.3.2
- Spring-webmvc 3.2.6
- 休止状態 4.3.4
したがって、基本的に私のアプリケーションは、シリアル化された企業のリストを返すことになっています。コーポレーション クラスには、遅延読み込み (マッピングで定義された lazy='true') である一連の旅行者オブジェクトがあります。したがって、それらはシリアライズされるべきではありません。ただし、jackson がコントローラーから企業をシリアル化するとき、何らかの理由で、Traveller もシリアル化しようとしますが、クラッシュして次のエラーをスローします: org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: com.model. core.Corporation.employees
この問題をグーグルで検索し、いくつかの投稿で見ましたが、今のところ修正できていません。https://github.com/FasterXML/jackson-datatype-hibernate/issues/25
私のコードは基本的に、hbm.xml マッピングを持つ Java "Corporation" クラスで構成されています。また、ObjectMapper を拡張し、その投稿で説明されているように、それを Spring メッセージ コンバーターに設定しました (フェッチされていない遅延オブジェクトでのジャクソンのシリアル化を回避します)。次に、「CorporationMixin」クラスを作成し、@JsonIdentityInfo で注釈を付けました。最後に、コントローラーから企業のリストを返すだけです。
私のコードを見て、ヒントを教えてください。問題が私の実装なのか、jackson-datatype-hibernate ライブラリのバグなのかわかりません。
hbm のマッピング:
「法人」エンティティ:
servlet-context.xml に追加されたマッパー:
HibernateAwareObjectMapper クラス:
CorporationMixin クラス:
シリアル化された企業を返すコントローラー クラス:
基本的にこれをweb.xmlに追加する休止状態のクラッシュを回避するための回避策があります
しかし、それで最初の問題が実際に解決されるわけではありません。
ご協力いただきありがとうございます!
jersey - 複数の構成された ObjectMappers を使用して Jersey で Jackson を使用する
複数の設定を使用したシリアライゼーション/デシリアライゼーションのためにJacksonを使用してJerseyをセットアップすることは可能ObjectMappers
ですか?
私ができるようにしたいのは、「デフォルト」のジャクソンを登録してから、特定の状況下で「デフォルト」を「オーバーライド」する特殊な構成をObjectMapper
提供する別の機能を登録する機能です。ObjectMapper
ObjectMapper
たとえば、これContextResolver
は「デフォルト」マッパーの場合です。
そして、これContextResolver
は「デフォルト」マッパーをオーバーライドすることです:
JacksonJsonProvider
Jackson がObjectMapper
プロバイダーの注入/解決をサポートしているコードが表示されます。ただし、実際には、プロバイダーの「順序」がランダムに見えます (そうではないと思いますが、順序を制御する方法を整理することはできません)。「オーバーライド」が「デフォルト」の前に来て、すべてが機能する場合がありますが、次のサーバーの起動時に順序が変更されます。
私はこれを次のようなさまざまな方法で機能させようとしました。
- 実装を手動で登録する
ContextResolver<ObjectMapper>
(異なる順序で) - アノテーション
ContextResolver<ObjectMapper>
による実装の登録@Provider
- 登録時の優先度指定
私は以下を使用しています:
- ジャージー 2.8
- ジャクソン 2.3.3
おそらく私は完全に間違ったアプローチを取っていますか?
私がやろうとしていることを達成するためのより良い方法はありますか? 2 つの別個の JAX-RS アプリケーションを定義し、それぞれに 1 つの ObjectMapper 構成を設定するだけでよいでしょうか?
json - Jackson を使用して JSON オブジェクトから外部キーを解決する方法
Dropwizard (Jackson と Hibernate を使用) を使用したブック ライブラリ システムには、次のクラスがあります。
本を追加するには、本のタイトルと著者の ID を json オブジェクトとして送信する必要があります。
ただし、Jackson は指定された作成者 ID から作成者を取得できないようです。
次のような一時オブジェクトを作成せずに、リクエストの JSON から book オブジェクトへ、および authorId から著者へのマッピングを構成する方法はありますか
java - ジャクソン・ジェイソン連載
Jackson 2.4 を使用しており、d3.js で処理するデータを生成する必要があります。
d3.js は、json の値を次のような形式にする必要があります。
私のJavaモデルには次のものがあります:
これはシリアライゼーション専用であり、デシリアライゼーション用ではないため、Jackson アノテーションを使用して json を必要に応じて生成する方法はありますか?
ありがとう、
java - Java Jackson: ジェネリック型を逆シリアル化する
TrainingData
以下に示すように、クラスを逆シリアル化しようとしています。TrainingData
gnerics を使用し、その属性の 1 つがそのスーパー クラスで宣言されています。JSON 文字列を逆シリアル化してTrainingData
オブジェクトを作成しようとすると、次の例外が発生します。
次の JSON 文字列を使用してオブジェクトを作成します。
TrainingData.java
Data.java:
}
PlayMusicContext.java
Context.java:
私は何が欠けていますか?
fasterxml - JAXB クラス - XML が期待どおりに作成されない
私は、fasterxml-jaxb(2.3) モジュールを使用して XML を生成していますが、XML の作成中に Xmlns アノテーションを読み取っていないようです。以下のように、パッケージ情報で定義されたプレフィックスを持っています
Jackson は接頭辞を適用しませんが、ユーザーがマーシャリングに JDK の JAXB を使用している場合、接頭辞は XML に適用されます