2017-03-27 19 views
0

EDITのために働いていない:春ブーツ:JSONデシリアライズはゲッター/セッター

私はシンプルObjectMapperを作成し、オブジェクトにJSONをマップするためにそれを告げました。アプリケーションが明らかに嚥下し、その後に続けていたことを認識できないフィールド

:それはジャクソンのエラーが

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyExceptionをデシリアライズ投げました。なぜ私のフィールド名がすべて小文字の最初の文字を与えられているのかを修正する必要があります。

ENDのEDIT

春ブートを使用しています、そしてIは、リモートアプリケーションからJSON形式でワイヤ上のオブジェクトを送信しています。私は "パケット"を調べて、私はオブジェクトのすべてがデータがあるはずのNULLを持っていることを知っています。フィールドはすべてプライベートですが、getterとsetterからアクセスできます。

ダミーのDTOオブジェクトを作成して送信しようとしました。そこでは、デシリアライズが正しく機能し、すべてのアクセサが非公開とラベル付けされたときにフィールドが正しく設定されていることがわかりました。

私はSpring BootでJacksonにフィールドのGetterを見つけ、そのプロパティを設定するためにどのように指示しますか?

ご協力いただきまして誠にありがとうございます。

以下は、私が送信しようとしているオブジェクトの写真と、ダミーのDTOオブジェクトです。ここでenter image description here

enter image description here

私の残りのコントローラーの上部と呼ばれています方法です。

enter image description here

そして最後に、ここではそれは@Entity品種のだ、シリアライズされていない厄介なクラスからの抜粋です。

enter image description here

+2

ソリューションは、私のapplication.propertiesは、これらの値でファイルを変更しました私はそれを箱から出さないことはなかった。いくつかのコードを提供できますか? – CollinD

+0

@CollinDクラスの写真をいくつか追加しました。 –

+1

今後の参考として、単にコピー貼り付けができる場合は、コードのスクリーンショットを投稿しないでください。読んで[mcve]を読んでください。 – CollinD

答えて

1

それが失敗した理由は2倍でした。まず、Java側の非直列化対象オブジェクトにマッピングされていないプロパティを送信側で持っていました。次に、NewtonSofts JSONコンバータが要素を変換するとき、次の変換 "String Name => String name"を作成します。これは、ジャクソンコンバータがJSON文字列の宛先値のいずれも見つけることができなかった別のエラーにつながります。

= falseを spring.jackson.mapper.accept_case_insensitive_propertiesオン未知の特性spring.jackson.deserialization.fail-=真