我需要创建json,其中对象的结构类似,但可以包含不同的对象名称,即:
"obj1":{
"field1":1,
"field2":2
}
"obj2":{
"field1":4,
"field2":5
}
"obj3":{
"field1":7,
"field2":8
}
如何使用jackson创建dynanic字段名称?这将在运行时根据所做的输入完成
答案 0 :(得分:2)
你可以参考这个答案:Jackson dynamic property names。
基本上您可以使用自定义JsonSerializer。
@JsonProperty("p")
@JsonSerialize(using = CustomSerializer.class)
private Object data;
// ...
public class CustomSerializer extends JsonSerializer<Object> {
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeObjectField(value.getClass().getName(), value);
jgen.writeEndObject();
}
}