問題タブ [jackson-databind]
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 mixin をプライベート フィールドで動作させるにはどうすればよいですか?
私は Jackson 2.0 mixin を使って、注釈なしでクラスをシリアライズしようとしていました。
以下、簡略化したソースコード。私はゲッター/セッターを使用していないことに注意してください。
main を実行すると、
例外の指示に従って行を追加すると
例外は発生しなくなりましたが、結果は空の JSON オブジェクト{}
.
フィールドをパブリックにすればうまくいきますが、それは合理的なオブジェクト設計ではないので、私がやりたいことではありません。
基本的な「setThis」ステップをどこかで省略していると思いますが、何がわかりません。この状況でミックスインを機能させるにはどうすればよいですか?
java - 文字列ではなく、int に基づく Jackson のポリモーフィック デシリアライゼーション
通常、Jackson でポリモーフィック デシリアライゼーションを行う場合、クラスにマップする文字列フィールドがあり、このように行うことができます。
値が文字列ではなく整数の場合、これを行う方法の簡単な例が見つかりません。たとえば、JSON に "methodName":"firstClassName" の代わりに "methodName":1 が含まれている場合、デシリアライズするクラスをどのように選択すればよいでしょうか?
java - UnrecognizedPropertyException: ソースで無視できるとマークされていない認識されないフィールド: org.apache.catalina.connector.CoyoteInputStream@14ec141
私のコードは次のとおりです。
しかし、このJsonで呼び出すと:
次の例外が発生します。
javax.servlet.ServletException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 認識されないフィールド "userId" (クラス com.tazligen.model.GroupMemberMap)、[ソース: org.apache.catalina.connector. CoyoteInputStream@14ec141; 行: 2、列: 15] (参照チェーン経由: com.tazligen.model.GroupMemberMap["userId"])
私のGrouMemberMapモデルクラスは次のとおりです。
私はこのような別の方法を試しました:
jsonで
しかし、これは問題なく動作します:/
誰かの助けが必要です。
java - Jackson: ネストされた json オブジェクトを JSONObject として保存する
この質問はLinkの複製です。コードは次のように使用されます。
しかしsettings
、リンクに示されているように、値は次のようになり{}
ます。この問題を解決するには?ネストされたオブジェクトを JSONObject として使用したい。
java - Jackson を使用して JSON 要素を Java フィールドにバインドする
以下のようにJSONフィールドをPOJOのJavaフィールドにマップすることは可能ですか-私のJSONはこのようなものです-
以下のPOJOでフィールド「タイプ」をマッピングします-
着信 JSON に従って POJO を記述したくはありませんが、修飾名を使用して要素をバインドしたいと考えています。私はそれをグーグルで検索しましたが、解決策が見つかりませんでした。
どのライブラリでも使用できますか?
java - Jackson でカスタム Map をデシリアライズする
現在、Jackson 2.8.4 を使用してカスタム Map タイプを JSON としてシリアライズおよびデシリアライズしようとしています。この回答に基づいてシリアル化を機能させることができましたが、逆シリアル化に苦労しています。次に例を示します。
上記のように逆シリアル化しようとすると、例外が発生します。
そのため、Jackson はまだ私のクラスを genericMap
であるかのようにデシリアライズしようとしていますが、これは Bean であるため機能しません。私も追加しようとしまし@JsonDeserialize(as = TestMapGetters.class)
たが、次のようになります:
サブタイプではないため、これは理にかなっています。オブジェクトがMap
. 私のクラスが であるという事実を無視してMap
、Bean として逆シリアル化するように Jackson に指示する方法はありますか?
java - Jackson 後方参照を最初に解決するように強制する
次のような JSON オブジェクト ツリーがあります。
Java では、親クラスには でマークされた子のリストが@JsonManagedReference
あり、子クラスには対応する があり@JsonBackReference
ます。私の問題は、value
プロパティのセッター メソッドが親に依存することです。悲しいことに、すべての実験で後方参照が最後に解決されるため、値が設定されたときに子オブジェクトの親フィールドはまだ null です。この逆シリアル化の順序を変更する方法はありますか? または、不要なフィールドを導入することなく、これをエレガントに解決する別の方法があります。
json - apache sling と neba 環境でスプリング コントローラーから json データを返す方法
Apache slingとともにNeba ライブラリを使用しています。
これで、私のスプリング コントローラーはこのコードで正常に動作します。
URL http://localhost:8080/bin/mvc.do/category/list にアクセスした後
「 Hello World!」という応答が返ってきます。
しかし、私がこのようにリスト文字列を返そうとしているとき -
次の例外が発生しています-
私のライブラリにはジャクソンのデータバインドがあります
libにこれらのライブラリがあるbundle jarも確認しました。なぜそれが機能しないのかはまだわかりません。どんな助けも非常に高く評価されています。