web-dev-qa-db-ja.com

Jacksonは変数をJson文字列として逆シリアル化します

私はそのようなモデルを持っています:

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の値を取得するにはどうすればよいですか?

18
kamaci

Jackson issue 596 は、元の質問で説明されている目的の機能のために作成されました。実装したい場合は投票してください。

利用可能な現在の解決策は、カスタムの逆シリアル化処理を実装することです。

また、 Jacksonを使用してオブジェクトに生のJSONを含めるにはどうすればよいですか? スレッドがこのトピックをカバーしています。

8

むしろ、データを中間オブジェクトにバインドすることをお勧めします。通常、これは_Java.util.Map_または_org.codehaus.jackson.JsonNode_(JSONツリー)のいずれかです。そして、あなたはあなたが望む方法でデータにアクセスすることができます。 ObjectMapper.convertValue(inputPojo, outputType))を使用してPOJOに簡単に変換することも含まれます。

10
StaxMan