1
私はjava.time.Instant(および他のタイプ)用のカスタムデシリアライザを持つJackson ObjectMapperを持っています。完全なJSONブロブの代わりに単一の値を読み取るにはどうすればよいですか?Jackson - Jacksonのデシリアライザで単一の値を逆シリアル化する
objectMapper.readValue("2017-02-01T00:00:00Z", Instant.class)
ユースケースを求める意見に応じて明確化:私はすでに
class MyConfiguration {
public Instant someField;
public Map<String, String> otherFields;
@JsonAnyGetter
public Map<String, String> any() {
return otherFields;
}
@JsonAnySetter
public void set(String name, String value) {
otherFields.put(name, value);
}
}
にJSONを解析されてきた
今私が持っている:
interface Something {
void init(MyConfiguration config)
}
class Something2 implements Something {
public void init(MyConfiguration config) {
//Here I would be like the implementation to be able to
//get a value from otherFields deserialised to a specified type.
}
}
アイム私はそれらを直接@JsonSubTypes
を使用してマップすることができると認識していますが、私はシステムを拡張可能にしようとしています。実装を知らない。自分の質問に答える
このためユースケースとは何ですか?あなたがJSONを持っていない場合、JSONライブラリを使うのはあまり意味がありません。 https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html#parse-java.lang.CharSequence- – pedromss
@pedromssを使用して、YAMLファイルを解析しています。いくつかの動的プロパティ(Map)と、インターフェイスのさまざまな実装で特定のタイプのプロパティをプルできるようにしようとしています。 ' T getProperty(String prop、Map map、Class clazz)' –
bcoughlan
私はまだ混乱しています。あなたはいくつかのJSONを持っていますが、いくつかのフィールドを抽出してそれを逆シリアル化するだけですか? –