GSON预期为BEGIN_ARRAY,但为BEGIN_OBJECT

GSON预期为BEGIN_ARRAY,但为BEGIN_OBJECT,第1张

GSON预期为BEGIN_ARRAY,但为BEGIN_OBJECT

您的问题结果对我来说真的很奇怪。似乎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

尽管显然最好的办法是解决序列化问题,但类似的事情应该对您有用!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4929038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存