問題タブ [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 投票する
2 に答える
755 参照

java - Jackson Custom Deserializer でスキップされた子を読み取る

フィールドの読み取り中に順序付けが必要な特定のクラスのデシリアライザーがあります。クラスに 2 つのフィールド (field1field2) があり、 を読み取るfield2には、最初に が必要だとしますfield1

たとえば、次の json データの場合、デシリアライザーが解析するときにfield2,field1が既に設定されているため、機能します。

ただし、フィールドを逆にすると:

field2が設定されていないjp.skipChildrenため、スキップする必要がありfield1ます。がfield1解析されると、Jackson は を再読み込みして解析する必要がありますfield2

1 つのオプションは、field2 をスキップする代わりに解析し、それを変数に保持して、field1 が設定されたときに field2 にデータを保持する変数を使用できるようにすることです。でも; の値に基づいて、field1解析する必要がない可能性があるfield2ため、コードのこの部分ではパフォーマンスが重要であるため、より良い解決策を探しています。

メソッドを使用していますが、Mapper.readValue(byte[], MyClass.class)ジャクソンがReaderBasedJsonParser解析に使用しているようです。トークンの位置を取得することはできますが、トークンの位置を設定する方法が見つかりませんでした。

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

android - Jackson を使用したジェネリック解析の一貫性のない応答を文字列またはカスタム オブジェクトに変換する

単一の RESTful Web サービスから 2 つの異なるシナリオで 2 つの異なる種類の応答 json を取得します。Jackson で次の応答 json を解析する方法は??

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

scala - JSON 解析を使用して Spark アプリを実行しようとすると例外が発生する

Scala と SBT を使用した単純な Spark アプリケーションがあります。まず、私は次のことをしようとしました:

  • 走るsbt clean package

  • 走るspark-submit --class Main ./target/scala-2.11/sparktest_2.11-1.0.jar

ただし、次の例外で失敗します。

次に、SBT のアセンブリ プラグインを試しましたが、代わりに次の例外が発生しました。

ご覧のとおり、すべてが Jackson ライブラリと Scala サポートに関連しているように見えます。ライブラリのバージョンに関連する問題でしょうか?

私の build.sbt は次のようになります。

そして、私のアプリケーション コードは次のとおりです。

編集:問題は Spark アプリケーションに関連しているようです。JSON アンマーシャリングをテストするためだけに単純なアプリケーションを実行すると、すべて問題なく動作します。しかし、Spark アプリケーションから同じことをしようとすると、上記のような問題が発生します。何か案は?

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

json - Jackson-Module-Scala 2.4 から 2.5 への移行

さまざまな複雑なオブジェクトをシリアル化および逆シリアル化するために、以下のラッパーで jackson-module-scala 2.4 を正常に使用しています。jackson-module-scala 2.5 に変更すると、多くの逆シリアル化 (JSON からオブジェクトへ) が失敗します。たとえば、次の単純なリストの逆シリアル化は失敗します。

エラーメッセージ:

これはラッパーです:

Jackson 2.5 に移行してデシリアライゼーションを機能させるにはどうすればよいですか?

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

java - 認識されないフィールド「ユーザー」(クラス com.test.webservice.bean.User)、無視可能としてマークされていません

こんにちは、jersey サービスを介して以下の json オブジェクトを変換しようとしています。

以下のエラーが表示されます:

また、@JsonIgnoreProperties を TRUE に設定すると、ユーザー オブジェクト全体が無視され、すべてのフィールドで NULL 値が返されます。

以下のように設定した ObjectMapper についても認識しています。

私はjackson 2.0を使用しています。以下はUser beanのサンプルコードです

そして、jsonオブジェクトを以下のように設定すると、正常に動作します

これがどのように機能するのか、またはjson文字列を変更する以外にこの状況で回避策があるかどうかを知りたいです。

お時間をいただきありがとうございます。

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

jackson - Jax-RS アプリケーションに JodaModule を登録する

私は、Jersey を使用して Jax-RS アプリケーションを作成しています。Jackson2 は、内部で JSON の入出力を容易にします。サービス自体は正常に動作しますが、Jackson マッパーが日付と日付時刻を JodaTime オブジェクトに自動的にシリアル化/逆シリアル化するようにして、サービスを改善したいと思います。

私はここのドキュメントに従っており、関連するjarを追加しましたが、この指示で迷っています:

jax.ws.rs.core.Application を拡張するカスタム クラスでこれを実行しようとしましたが、その解決策にまったく自信がありません。現在、次のエラーが発生しています。

このモジュールの登録は、アプリケーション (サーブレット?) の起動時に行う必要があるという一般的な印象を除けば、この情報をどう処理すればよいかわかりません。カスタムクラスをピックアップするには、特に何かで注釈を付ける必要がありますか? クラスを拡張する必要がありますか?

StackOverflow で見つけた例は、通常、それを貼り付けmain()てマッパーを直接呼び出しますが、Jackson Databinding に依存しているため、例は関係ありません。どんな方向でも大歓迎です。

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

scala - java - ScalaモジュールでJacksonを使用して、nullが埋め込まれた文字列配列を逆シリアル化する方法は?

私は次の Scala を持っていますcase class:

クラスのインスタンスをシリアル化するときに、Jackson を使用します。

次の JSON を受け取ります。

これは私のニーズに完全に有効な表現です。ただし、逆シリアル化中に、次のメッセージが表示されますcom.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of VALUE_NULL token

どうやらnullは許容String値ではありませんが、私は ScalaOption[String]にデシリアライズしているので、値nullとして表す必要がありNoneます。

How to deserialize Jackson Json NULL String to Date with JsonFormatで、@wassgren は注釈を使用してコンバーターを使用することを提案し、JsonDeserializeドキュメントを読んだ後、contentUsingオプションを使用することにしました。

残念ながら、そのコードは予想される例外を発生させません。a を使用しようとしてcontentConverterも、例外は発生しません。

String オブジェクトの配列を読み取り、null 値を受け入れたり変換したりするにはどうすればよいですか?