少し変わった質問があります。オブジェクトを作成しました。プロファイルと呼びましょう。これは、呼び出した API を介して単一の JSON オブジェクトを正常に解析します。また、プロファイル オブジェクトの JSON 配列を返すマルチプロファイル インターフェイスもあります。問題は、マルチプロファイル インターフェイスがサブ オブジェクトを文字列に変換することです。これらをオブジェクトに解析するようにジャクソンに指示できる自動方法はありますか?
単一オブジェクトの例:
{ "foo": "bar" }
マルチオブジェクトの例:
[ "{ \"foo\": \"bar\" }", "{ \"blah\": \"ugh\" }" ]
(実際のデータは使用できません)
サブオブジェクトは実際には文字列であり、その中に引用符がエスケープされていることに注意してください。
完全を期すために、マルチ オブジェクト解析のコードは次のようになります。
ObjectMapper mapper = new ObjectMapper();
Profile[] profile_array = mapper.readValue(response.content, Profile[].class);
for (Profile p: profile_array)
{
String user = p.did;
profiles.put(user, p);
}
前述したように、単一プロファイルの場合、Profile オブジェクトが解析します。マルチプロファイルの場合、次の例外が発生します。
Exception: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.xyz.id.profile.Profile, problem: no suitable creator method found to deserialize from JSON String