几天来,我一直在努力序列化 Jersey 中的空列表和单元素列表。我进行了很多搜索,但找不到解决问题的方法。我试图通过添加 JAXBContextResolver 类来修复它。目标是在所有情况下都将包含 JSON 数组的 JSON 对象返回给我的 Android 应用程序(如果它返回 0 个元素或 1 个元素或超过 1 个)。我尝试使用 JSONConfigurationMAPPED
和NATURAL
JSON 符号。非常感谢您的帮助。提前致谢
我NATURAL JSONConfiguration
在这个问题中使用了:
但我认为更好的方法是使用MAPPED JSONConfiguration
这种配置的问题,它只适用于一个类并且它不能解决空列表的问题。请我真的需要你的帮助
@Provider
public class JAXBContextResolver implements ContextResolver < JAXBContext > {
private JAXBContext context;
private Class[] types = {Workitem.class, Project.class, User.class};
public JAXBContextResolver() throws Exception {
this.context = new JSONJAXBContext(JSONConfiguration.mapped().arrays("workitem").build(),
types);
}
public JAXBContext getContext(Class objectType) {
for (Class type : types) {
if (type == objectType) {
return context;
}
}
return null;
}
}
我也尝试了这个解决方案 如何将 JAXB 对象列表的序列化自定义为 JSON?
但我真的需要 JSON 数据看起来像这样:
{
"project": [
{
"assignedTo": "assignee1",
"businessKey": "Key1",
"createdBy": "createdBy1",
"description": "description1"
}
]
}
而空列表看起来像这样:
{
"project": []
}