我对gson反序列化有问题。
传入的json看起来像这个{"roles":{"name":"bla" "perm" : "bla"}}
,或者当有更多角色可用时,它看起来像这样
{"roles":[{"name":"bla" "perm" : "bla"}{"name":"hihi" "perm" : "hihi"}]}
。所以第一次参数角色是一个对象,第二次是一个对象数组。
当我的java类具有字段Role []角色时出现问题;并且在json参数角色中只抛出一个对象异常“预期BEGIN_ARRAY但是BEGIN_OBJECT”。
谢谢你
答案 0 :(得分:1)
这有点夸张 - 你不能指望库会在同一时间为json正确处理两个不同的模式。但是,当我的客户使用GSON来使用服务时,我遇到了类似的问题,但是他们是使用Jersey配置的。
添加杰克逊以及正确的配置使我的服务始终是一个数组,这是问题的实际解决方案。有关如何修复服务的说明,请参阅this thread。
答案 1 :(得分:1)
您可以使用自己的TypeAdapter处理单个实例案例,对其进行反序列化,然后转换为数组并将其设置在字段上,使其统一。