5

私はこのコードを持っています:

final Person p = new Person(1L);
final ObjectMapper mapper = JacksonUtil.INSTANCE.getMapper();
final TypeReference<HashMap<String, Object>> typeMap = new TypeReference<HashMap<String, Object>>() {};
final String personJson= mapper.writeValueAsString(p);
mapper.readValue(personJson, typeMap);

personJsonのようなものです:

"id" : 1

Json にa があるときはいつでもLong type、それを読み取ろうとしても機能しません。このエラーがあります:

com.fasterxml.jackson.databind.JsonMappingException: 型 [単純型、クラス org.codehaus.jackson.generated.java.lang.Number] の値を整数からインスタンス化できません。単一の整数引数のコンストラクタ/ファクトリ メソッドはありません

タイプを受け入れるにはどうすればよいLongですか?マッパーで有効にする機能はありますか?

4

2 に答える 2

5

整数を受け入れるコンストラクターを Person で作成します (あなたのように long ではありません)。どうしても long を受け入れたい場合は、Number を受け入れるコンストラクターを作成してみてください。

于 2016-03-08T19:06:21.043 に答える