我在 gson 反序列化方面遇到问题。
传入的 json 看起来像这样 {"roles":{"name":"bla""perm": "bla"}}
或者当有更多可用角色时,它看起来像这样
{"roles":[{"name":"bla""perm": "bla"}{"name":"hihi""perm": "hihi"}]}
。所以第一次参数角色是一个对象,第二次它是一个对象数组。
当我的 java 类具有字段 Role[] 角色时出现问题;在json参数角色中,只有一个对象异常被抛出“预期是BEGIN_ARRAY,但实际上是BEGIN_OBJECT”。
谢谢您的问候
最佳答案
这是一种有点虚假的情况 - 您不能指望该库能够同时正确处理 json 的两种不同模式。然而,当我的客户使用 GSON 来使用服务时,我遇到了类似的问题,但它们是使用 Jersey 配置的。
添加 Jackson 以及正确的配置使我的服务始终提供一个数组,这实际上解决了问题。请参阅this thread了解如何修复该服务。
关于java - GSON:预期为 BEGIN_ARRAY,但实际为 BEGIN_OBJECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153002/