シリアライズ/デシリアライゼーションの面で、この作業を持っているためにのentrySetを反復処理し、あなたのPOJOに値を割り当てる
@JsonDeserialize(using = ParametersDeserializer.class)
@JsonSerialize(using = ParametersSerializer.class)
private List<Parameter> parameter;
カスタムデシリアライザだろう基本的にループJSON「パラメータ」ノードのフィールドとカスタム・シリアライザは、パラメータのリストを通って、それぞれに対して他方のループに、それは最初のパラメータの名前とティを使用してフィールドを作成しますでしょう
JsonNode node = jsonParser.readValueAsTree();
List<Parameter> items = new ArrayList<>();
Iterator<String> it = node.fieldNames();
while(it.hasNext()) {
String nextField = it.next();
JsonNode n = node.get(nextField);
JsonNode type = n.get("type");
Parameter p = new Parameter();
p.setName(nextField);
p.setType(type.asText());
items.add(p);
}
return items;
パラメータのリストを返しますフィールドには、1つのフィールド、つまりタイプ、パラメータのタイプを使用するオブジェクトが含まれます。
jsonGenerator.writeStartObject();//com.fasterxml.jackson.core.JsonGenerator
for (Parameter p : parameters) {
jsonGenerator.writeFieldName(p.getName());
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("type", p.getType());
jsonGenerator.writeEndObject();
}
jsonGenerator.writeEndObject();
ありがとうございますが、依然としてカスタムのシリアライザ/デシリアライザの作業全体を行う必要がありました。 – Filip