我在Java中构建一个REST服务,它将数据集列表作为JSON数组返回,我使用ObjectMapper
(杰克逊)在发回响应之前序列化列表。实体Dataset
是一个扩展ReflectionDBObject
的类。
这是一些代码:
数据集:
public class Dataset extends ReflectionDBObject {
private String name;
private String description;
// other fields
// constructor
// getters&setters
}
REST:
public Response getDatasetsList() {
List<Dataset> datasetsList;
String jsonMsg;
datasetsList = INSTANCE.getDatasetService().getDatasetsList();
jsonMsg = INSTANCE.getObjectMapper().writeValueAsString(datasetsList);
return Response.ok(jsonMsg, MediaType.APPLICATION_JSON).build();
}
INSTANCE
是我的单身人士。
我得到的是以下内容:
[
{
"_id": "551bdebb516a8100a5316125",
"name": "a name",
"description": "a description",
"partialObject": false
},
{
"_id": "551be03c516aedc9f999e6ff",
"name": "metadata test name",
"description": "metadata test description",
"partialObject": false
}
]
有没有办法配置Jackson删除(或只是跳过)字段partialObject
? This question提供了类似的问题,但答案并非我真正想要的。
感谢。
答案 0 :(得分:0)
如果它在子类中,则应该可以在基类中添加@JsonIgnoredProperties
注释来定义要忽略的字段,例如:
@JsonIgnoreProperties({ "partialObject" })
public class Dataset extends ReflectionDBObject { ... }
除非被子类覆盖,否则会丢弃属性。