これは、かなり解決された/よく取り組まれた問題であるようですが、私は多くのガイダンスを見つけられません。JSONレスポンス内のネストされたオブジェクトからのフィールドの逆シリアル化
私のシナリオでは、私はこのような何かを見て、ページ付けJSONレスポンスを消費していますことを、基本的である:
{
"objects": [...],
"meta": {
"total": 5000,
"page": 1,
"result_pages": 20,
"links": {
"prev": null,
"next": "/api/v3/objects/somequery?page=2"
}
}
}
明らかにこれは単純化され、うまくいけば、それは全体でポイントを取得します。
本当に気になるのは、objects
フィールドとnext
フィールドですが、ネストされたフィールドを正常にデシリアライズするには、DTOの階層全体を作成する必要があります。
このすべてをスキップできるジャクソンアノテーションはありますか?そうでない場合は、主に空のクラスやファイルが含まれていない、これを行うベストプラクティスがありますか?
が、多分ちょうど上の注釈で、上記の 'JsonDeserializer'を使用することが容易になるだろう欲しいものを得るでしょう'String next'プロパティを使用して、' 'オブジェクト ''と同じルートレベルで、それがフラットであるとふりまとめますか? –
@ap、この注釈は、クラストップの場合でも、別の方法で使用することができます。ここでは、ドキュメントhttps://fasterxml.github.io/jackson-databind/javadoc/2.3.0/com/fasterxml/jackson/databind /annotation/JsonDeserialize.html – SerCe
将来の疑問がある場合は、上記の答えが間違っていると思われる '.asText()'メソッドを使用していることを言及する必要があります。私は '.textValue()'を使い終わってしまいました。それは魅力的に働いています。 –