使用 Jackson 和 Spring 3.0 从 JSON 反序列化集/列表失败

发布于 2024-11-08 05:29:58 字数 450 浏览 0 评论 0原文

我在反序列化包含集合的 POJO 对象时遇到了麻烦

,例如

class C {
    Set<SomeObject> set;
    ...
}

使用 Jackson 1.8 自动映射,我正确地获得了所有属性,但是如果我使用集合,我会得到这个

org.codehaus.jackson.map.JsonMappingException: 意外的令牌 (START_OBJECT), 预期 VALUE_STRING:需要 JSON 包含类型 id 的字符串(对于 java.util.Set 的子类型)

有什么想法我做错了吗?类型中的泛型/类型擦除是罪魁祸首吗?那我该如何解决呢?

免责声明,当我序列化和反序列化不在会话中时,我正在使用 Hibernate 持久实体

I'm having a trouble desirializing POJO objects that contains sets

e.g.

class C {
    Set<SomeObject> set;
    ...
}

Using Jackson 1.8 auto mapping, I get all properties correctly, but if I use a set I get this

org.codehaus.jackson.map.JsonMappingException:
Unexpected token (START_OBJECT),
expected VALUE_STRING: need JSON
String that contains type id (for
subtype of java.util.Set)

Any Ideas what I'm doing wrong? is Generics in type / type erasure is the culprit? how do I fix it then?

Disclaimer, I'm using Hibernate persistent entities when I'm serializing and deserializing is out of session

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

记忆で 2024-11-15 05:29:58

JSON数据的结构与POJO的结构不同;如果您可以在此处包含 JSON,那么应该很容易找出到底发生不匹配的位置。集合应该可以很好地处理,但它们需要与 JSON 数组匹配。

Structure of JSON data differs from structure of POJO; if you can include JSON here it should be easy to figure out where exactly mismatch occurs. Sets should be handled just fine, but they need to match with JSON arrays.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文