我有一个类似的问题Jackson dynamic property names。 我需要根据var_name的值设置结果属性名称。 我可以在自定义序列化程序中做些什么来传递var_name?使用Jackson的动态字段名称
@NotBlank
private String var_name;
@NotNull
private Object result;
public DataObject(String var_name, Object result) {
this.var_name = var_name;
this.result = result;
}
@JsonProperty
@JsonSerialize(using = CustomSerializer.class)
public String getName() {
return var_name;}
@JsonProperty
@JsonSerialize(using = CustomSerializer.class)
public void setName(Object var_name) {
this.result = var_name;}
@JsonProperty
@JsonSerialize(using = CustomSerializer.class)
public Object getResult() {
return result;}
@JsonProperty
@JsonSerialize(using = CustomSerializer.class)
public void setResult(Object result) {
this.result = result;}
public class CustomSerializer extends JsonSerializer<Object> {
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeObjectField(***how can i insert var_name here***, value);
jgen.writeEndObject();
}
}
邮来电:
@POST
public List<DataObject> search(){
List<DataObject> list = new ArrayList<DataObject>();
//some iteration function
//...
list.add(new DataObject(variable_string, variable_object));
//...
return list;
}
凡variable_string
和variable_object
通过查询知识库的结果确定。
期望JSON响应例如:
[{
"Name": "John",
"Age": 69
},
{
"Name": "Jane",
"Gender": "Female",
"DateTime": "2017-6-12T15:09:25"
}]
感谢。
我真的很喜欢这个问题,不能忘记的。即使它是错误的或基本的,至少留下评论说你为什么倒票,所以我可以改进它。 – wmw301
我想你应该提供一个输入和预期结果的例子。 –
谢谢。我已经包括了这一点。 – wmw301