Jersey和JSON Configuration序列化一个空列表和单个元素列表

时间:2013-05-23 17:57:10

标签: java json jaxb jersey

我现在正在为泽西岛的一系列列表和单个元素列表的序列化而苦苦挣扎。我搜索了很多,我无法找到解决问题的方法。我试图通过添加JAXBContextResolver类来修复它。目标是在所有情况下将包含JSON数组的JSON对象返回到我的Android应用程序(如果它返回0个元素或1个元素或多于1个)。我使用MAPPEDNATURAL JSON表示法尝试了JSONConfiguration。非常感谢你的帮助。提前致谢

我在这个问题中使用了NATURAL JSONConfiguration

Jersey serialize empty list and single element list as an array

但我认为更好的方法是使用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;
    }
}

我也试过这个解决方案 How can I customize serialization of a list of JAXB objects to JSON?

但我真的需要JSON数据看起来像这样:

{
    "project": [
        {
            "assignedTo": "assignee1",
            "businessKey": "Key1",
            "createdBy": "createdBy1",
            "description": "description1"
        }
    ]
}

并且空列表看起来像这样:

   {
        "project": []
   }

0 个答案:

没有答案