問題タブ [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 2x のマッパー/パッケージ/クラス レベルでのデフォルト タイプ デシリアライザーの設定
(1 つまたは複数のモジュールにパッケージ化された) 型に複数のデシリアライザーが必要な場合、Jackson はその型の主要なデシリアライザーをどのように判断しますか? ランダムですか?そうでない場合、パッケージ/クラスごとにデフォルトを設定できますか?
Jackson クラスごとに特定のタイプのほぼすべてのプロパティを指定する必要があるのは明らかに完全に正気で@JsonDeserialize(using=CustomDeserializer.class)
はないため、複数のデシリアライザーが存在する場合にデフォルトを設定する方法があると想定していますが、これまでのところ何も見つかりませんでした。
java - Jackson のデシリアライズが Map で失敗する
エラーを示す簡単なテスト ケースを作成しました。何か見逃した場合はお知らせください。
単一のアクセサーを宣言する単純なインターフェイスがあります。
この単体テストを実行すると、Jackson は json 文字列の解析に失敗します。
スタックトレースからわかるように、Jackson は json から contextMap トークンを正しく抽出しますが、文字列のトークン化を続行できません。私の知る限り、json 文字列はマップを正しく表しています。
ありがとう、ロビン。
json - jackson 2でJSONをディープマージするにはどうすればよいですか?
私はJerseyとJackson2を使ってRestful APIを開発しています。PUT メソッドを開発するときに問題が発生します。私たちの PUT メソッドは、PATCH メソッドのようなものです。リクエスト本文で受け取ったプロパティのみを更新します。
オブジェクトのマージを行うために ObjectMapper.readerForUpdating() メソッドを使用しています。ただし、この方法は第 1 レベルのマージのみをサポートします。例: 既存の JSON オブジェクトがあります
そして、次のような JSON オブジェクトを受け取ります
マージされたオブジェクトは次のようになるはずです。
しかし、結果は
第 1 レベルのプロパティは正しくマージされます。しかし、深いレベルでは、オブジェクトの置換を行っています。ディープマージを行う方法はありますか?
mongodb - Kotlin では、Jackson がアノテーションのないオブジェクトのアンマーシャリングに失敗する場合とそうでない場合がある理由
MongoDB にアクセスするために、Jongo で Kotlin を使用しています。Jongo は、Jackson を使用してオブジェクトをシリアライズ/デシリアライズし、MongoDB からオブジェクトを保存および読み取ります。Jackson-Kotlin モジュールを使用して、コンストラクターを使用して Kotlin データ クラスをシリアル化します。
以下は、正常にシリアル化されるデータクラスの例です。
デシリアライズに失敗する同様のクラスの例を次に示します。
Jackson のデシリアライズが失敗するため、Jongo によって次の例外がスローされます。
次のように Session データ クラスに完全に注釈を付けると、機能します。
私の質問は、なぜワークフローで機能するのですか? 完全に注釈が付けられていない場合に、Session データ クラスのアンマーシャリングが失敗する微妙な違いは何ですか?
編集
違いは、ワークフロー テスト ケースを Gradle から実行してテストしたことです。このテスト ケースでは、異なるバージョンの Kotlin を使用し、次に IDEA IDE から実行したセッション テスト ケースを使用しました。IDEA の Kotlin プラグインの更新により、IDEA がテスト ケースの実行に使用する Kotlin のバージョンも更新されましたが、これには気づきませんでした。これにより、Kotlin と Jackson-Kotlin ライブラリのバージョンが一致しなくなりました。以下の受け入れられた回答は、物事を再び機能させるために何を構成する必要があるかを指摘しました。
java - ストリーミング API で json 文字列の一部を抽出し、jsonTree に変換する (Jackson)
ネストされたjson構造があります:
ジャクソンを使用しています。「Bob」に関する情報のみを抽出してツリーに読み込みたいだけです。構造全体をツリーに読み込んで (その方法は知っています)、ボブに関する情報を抽出したくありません。ストリーミング API (JsonParser) を使用して、まず "Bob" ですべての情報を抽出し、それを jsontree にします。
私はそれをバイト配列に読み込んでから、それを次のようにツリーに変換すると思いました:
ただし、これは私が望む結果を返していません。jsonParse 例外があるので、これは行くべき道ではないと思います。
jackson - Jackson Afterburner モジュールが Apache Karaf 3.0.5 内で失敗する
Jackson の Afterburner ModuleApache ServiceMix 6.1.0
を使用して、単純な Hello World タイプの Karaf Bundle を内部で実行しています。アクティベーターコードは以下のようになります:-
以下のpom.xml
ように見えます: -
json に変換しようとしている Java オブジェクトは、以下に示す単純なオブジェクトです。
しかし、バンドルをインストールしようとするたびに、以下の例外が発生し、バンドルは状態でスタックしResolved
ます:-
必要なすべての Jackson バンドルが Karaf にインストールされています:-
以下の行をコメントアウトすると、すべて正常に動作します:-
誰かが私が間違っていることを教えてもらえますか?
githubに配置したすべてのコード。
java - JsonProperty が配列の場合もあれば、単一のオブジェクトの場合もある場合、Jackson は逆シリアル化します
投稿する前に Stack Overflow を検索しましたが、Jackson の解決策はありませんでした。
サーバーの応答は次のとおりです。
ご覧のとおり、プロパティ"result"
は配列です。
これは別の応答です。
ここ"result"
に単一のオブジェクトがあります。
これは、コンテンツをデシリアライズしたい私のクラスです。もちろん、カスタムデシリアライザーを作成しましたTObject
:
だから私は自分のクラスで "result"
が s の配列であると仮定しましたTObject
。今、私は何ができますか? 1つは s の配列であり、もう 1 つは単一のOKである 2 つのフィールドを使用@JsonProperty("result")
TObject
TObject
していますか?
そうでない場合、他に何ができますか?
java - JsonMappingException: タイプ [単純なタイプ、クラス car.Car$Parts] に適したコンストラクターが見つかりません
Parts
この XML をオブジェクトに逆シリアル化しようとしています。
Car.java :
コードに問題はありませんが、なぜ次のように表示されるのですか?