私はそのようなモデルを持っています:
private String message;
private Integer errorCode;
private String data;
たとえば、リモートから次のJSONを取得します。
{"data": {"cat": "1.2.3.4", "ner": "80", "name": "pinta" }, "message" : "m", "errorCode" : 12}
このJSONを逆シリアル化すると、message
変数とerrorCode
変数が正しい値を取得します。ただし、data
変数の内容を解釈させたくありません。代わりに、次の文字列にします。
{"cat": "1.2.3.4", "ner": "80", "name": "pinta" }
その後、自分で解釈します。このdata
の値を取得するにはどうすればよいですか?
Jackson issue 596 は、元の質問で説明されている目的の機能のために作成されました。実装したい場合は投票してください。
利用可能な現在の解決策は、カスタムの逆シリアル化処理を実装することです。
また、 Jacksonを使用してオブジェクトに生のJSONを含めるにはどうすればよいですか? スレッドがこのトピックをカバーしています。
むしろ、データを中間オブジェクトにバインドすることをお勧めします。通常、これは_Java.util.Map
_または_org.codehaus.jackson.JsonNode
_(JSONツリー)のいずれかです。そして、あなたはあなたが望む方法でデータにアクセスすることができます。 ObjectMapper.convertValue(inputPojo, outputType)
)を使用してPOJOに簡単に変換することも含まれます。