您的问题结果对我来说真的很奇怪。似乎Jersey的单元素数组的JSON序列化肯定存在一些问题…如果您使用Google“ JerseyJSON单元素的数组 ”,则会发现相同的问题,例如
此处 或在这里 。我对泽西岛不太了解,所以我无法为您提供帮助…
也就是说,我可以建议一种解决方法,在Gson中使用手动解析,以使您的解析适应2种不同的响应(对象或数组)。您可以执行以下 *** 作:
//manually parsing until get the "project" element...JsonParser parser = new JsonParser();JsonObject rootObejct = parser.parse(yourJsonString).getAsJsonObject();JsonElement projectElement = rootObejct.get("project");Gson gson = new Gson();List<Project> projectList = new ArrayList<>();//Check if "project" element is an array or an object and parse accordingly...if (projectElement.isJsonObject()) { //The returned list has only 1 element Project project = gson.fromJson(projectElement, Project.class); projectList.add(project);}else if (projectElement.isJsonArray()) { //The returned list has >1 elements Type projectListType = new TypeToken<List<Project>>() {}.getType(); projectList = gson.fromJson(projectElement, projectListType);}//Now you have a List<Project> projectList with one or many Project elements, //depending on the response...
请注意,您不需要上课
ProjectContainer。
尽管显然最好的办法是解决序列化问题,但类似的事情应该对您有用!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)