問題タブ [jackson2]
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 - Jersey 2.x ExceptionMapperの親マッピング
編集: ackson-jaxrs-base-2.8 で解決された ackson-jaxrs-base の以前のバージョンの問題でした。 https://github.com/FasterXML/jackson-jaxrs-providers/issues/22
例外マッパーを使用して、この問題に取り組んでいます。単一の ExceptionMapper で com.fasterxml.jackson.core.JsonProcessingException のすべての子をマップしたい。
ここに私のコードがあります:
次のコードで正常に動作します。
編集: JsonProcessingException は JsonMappingException の親です 正確に私はここで間違っていますか?
json - Jackson で範囲をシリアライズする
Range
特定の形式、つまり でシリアル化する必要がある があります"[lower,upper)"
。そのために、基本的なシリアライザーを作成しました。
(実際にはRange
、シリアライザーは、閉じた/開いた範囲、両端に無制限の範囲がある可能性などのさまざまな可能性を処理することに注意してください。単純)。
私の問題は、各クラスのデフォルトのシリアライザーにフォールバックすると、間違った場所に引用符が表示されることです。たとえばRange<String>
、エントリを持つがあった場合"[foo,bar)"
、それをシリアル化すると が得られ"["foo","bar")"
ます。下限エンドポイント値と上限エンドポイント値を引用符なしで結果が必要です。
追加の引用符はgen.writeString()
、基礎となるシリアライザーが既に文字列になっていることを認識していないためであることを理解しています。ジェネレーターにこれを知らせる方法、または私がやろうとしていることを達成する別の方法はありますか?
Range<?>
本当に一般的なので、値のシリアル化をハードコーディングできないことに注意してください。Range<Integer>
、Range<String>
、およびその他すべてで機能する必要がRange<DateTime>
あります。
java - Jackson 1のStdSerializerProviderに相当するJackson 2はありますか?
Jackson 1.9.2 を使用するレガシー コードを継承しており、Jackson 2.x にアップグレードしたいと考えています。争点の1つは次のとおりです。
私が抱えている問題はStdSerializerProvider
、Jackson 1.9.xには存在するが、Jackson 2.x には存在しないことです。既存の動作を保持する同等のクラスはありますか? それとも交換が必要ですか?
java - RESTEasy クライアントで JSON 応答の特定のノードを抽出する
RESTEasy クライアントを使用して API から JSON 文字列を取得しています。JSON ペイロードは次のようになります。
items
ここで、オブジェクト マッピング用のノードのみを抽出したいと思います。items
JSON 応答本文をインターセプトし、ルート ノードとして 持つように変更する最良の方法は何ですか?
API メソッドにRESTEasy プロキシ フレームワークを使用しています。
REST クライアント コード:
RESTEasy プロキシ インターフェイス:
java - Jackson で JsonNode を非常に具体的な JSON 形式にシリアル化する
JsonNode
印刷したい結果があります。これまでのところ、私は使用しています:
次のようなものを出力します。
しかし、私はそれをこの特定の形式にする必要があります:
文脈上、私は からJSONObject
Jackson に移行しているので、2 番目の出力は によって出力されるものJSONObject.serialize()
です。
また、上記の各形式の名前はありますか? さまざまな基準に準拠しているようです。
java - Jackson - カスタム JsonSerializer でカスタム PrettyPrinter を使用する
JSONをファイルにシリアル化するためにJackson v2.8.2を使用しています。
serialize
カスタムシリアライザーを作成し、必要に応じて JSON 出力をカスタマイズするメソッドを実装しました。
次のようにシリアライザーを呼び出しています。
JSON ファイルが作成され、コンテンツが適切に表示されます。
ファイルは に従ってフォーマットされていますが、既に実装したDefaultPrettyPrinter
独自の custom を使用したいと考えています。PrettyPrinter
それ、どうやったら出来るの?
私は次のことを試しました:
しかし、それは私のカスタムプリンターを呼び出していません。
java - 完全な POJO データ バインドを使用した Jackson カスタム フィルター
この質問はこの質問を拡張します。
前のソリューションは、フィールドが数個しかない場合はうまく機能しますが、フィールドが 12 個を超えると維持できなくなります。現在、私の現在のセットアップは完全なデータ バインディングを使用しているため、Jackson が JSON を自動的に逆シリアル化するために使用する POJO があります。
ただし、以前と同様に、特定のフィールドには通過する必要がある制約があります。基本的に、これに似た答えを探していますが、プロパティを設定する必要はありません。フィールドが制約を満たさない場合にフィルターとして機能し、カスタム例外をスローするカスタム デシリアライザーです。フィルターの最後まで例外がスローされなかった場合、Jackson は JSON を POJO に自動的にバインドする必要があります。
java - Jackson の @JsonTypeInfo(use = Id.CUSTOM, include = As.PROPERTY, property = "type") は、"type" を除く JSON のすべてのフィールドを読み取ります
コードの各行をステップ実行しましたが、Jackson が内部的にポリモーフィズムを処理する方法だと思います。
Dog
およびCat
拡張の古典的な例を使用しAnimal
ます。
犬のクラス :
猫クラス:
はAnimalTypeIdResolver
、 を拡張する典型的な TypeIdResolver ですAbstractTypeIdResolver
。
非常に奇妙な理由で、bark_decibel
とmeow_level
は JSON から逆シリアル化されていますがtype
、null
. 何か案は?
java - Jackson 2 で json をアンマーシャリング中にエラーが発生しました
Jackson 2 を使用して、次の JSON ファイルを非整列化しようとしています。
Geometry/coordinates 要素の非整列化中にエラーが発生します。誰かがエラーの場所を教えてもらえますか?
ジオメトリ部分の前はすべて問題ありません。