0
我在Java中构建了一个REST服务,它返回一组数据集作为JSON数组,我使用ObjectMapper
(Jackson)在发回响应之前序列化列表。实体Dataset
是延伸ReflectionDBObject
的类。 下面是一些代码:无法序列化ReflectionDBObject(partialObject)
数据集:
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
}
]
是否有配置杰克逊删除(或只是跳过)领域partialObject
的方法吗? This question提供了类似的问题,但答案并不是我正在寻找的。
谢谢。
您需要更多地显示对象以查看partialObject来自哪里。通常,您可以使用'@ JsonIgnore'作为属性;或者,如果您可以直接注释类型,则可以在类PartialObject本身上添加@ JsonIgnoreType。 – StaxMan 2015-04-02 17:18:07
'partialObject'自动来自'ReflectionDBObject'的扩展,它不是'Dataset'的字段。 – Marco 2015-04-02 17:22:37
尽管如此,需要定义来知道它来自哪里,所以显示这个类或类似的例子会很有用。但它听起来像只是一个简单的附加属性。 – StaxMan 2015-04-02 17:24:53