目前服务响应如下所示:
{
"values": [
{
"field1": "value",
.................
},
{
"field1": "value",
.................
}
]
metadata1:[],
metadata2:"-"
}
但只想发送值数组作为响应。喜欢这个
[
{
"field1": "value",
.................
},
{
"field1": "value",
................
}
]
我可以在@JsonIgnoreProperties
的帮助下禁止元数据信息。但是回复仍然是这样的:
{
"values": [
{
"field1": "value",
.................
},
{
"field1": "value",
.................
}
]
}
我该如何解决?
答案 0 :(得分:1)
使用the @JsonValue annotation很容易实现,它可以改变java类的表示形式。只需将一个使用此批注注释的方法添加到返回值集合的响应类中。这是一个例子:
public class JacksonValue {
public static class Bean {
private final List<String> values;
public Bean(List<String> values) {
this.values = values;
}
@JsonValue
public List<String> getValues() {
return values;
}
}
public static void main(String[] args) throws JsonProcessingException {
Bean bean = new Bean(Arrays.asList("a", "b", "c"));
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(bean));
}
}
输出:
["a","b","c"]