gpt4 book ai didi

java - GSON反序列化后完成对象构造

转载 作者:太空狗 更新时间:2023-10-29 22:55:21 25 4
gpt4 key购买 nike

我已成功开始使用 GSON 序列化和反序列化我的 Android 应用程序中的对象层次结构。

某些被序列化的对象具有我必须标记为 transient 的成员(或者使用其他 GSON 注释来防止它们被序列化),因为它们是对我不想序列化的对象的引用作为输出 JSON 字符串的一部分。这些引用指向必须通过其他方式单独构造的对象。

一旦结构被反序列化回 Java 对象,在某些时候我需要填写这些引用。我可以通过使用一系列 setXXX() 类型的方法轻松地做到这一点,但在完成之前,这些对象处于不完整状态。因此,我想知道是否有更强大的方法来解决这个问题。

目前想到的方法:

  1. 如果对象处于不完整状态,则让对象抛出 RuntimeException(或更合适的东西);也就是说,如果他们在未调用某些初始化方法时被要求做一些工作。

  2. 将可序列化位分离到一个单独的数据模型对象中。也就是说,把不能序列化的东西拿出来。在 GSON 反序列化之后,使用组合中的这些数据对象构建我的“真实”对象。这似乎在某种程度上破坏了使用 GSON 的便利性。

  3. 为 GSON 编写自定义反序列化器来处理这些对象的特殊创建。

最佳答案

查看 https://github.com/julman99/gson-fire

这是我制作的一个库,它扩展了 Gson 以处理像后序列化和后反序列化这样的情况

它还有许多其他很酷的功能,随着时间的推移,我需要使用 Gson。

关于java - GSON反序列化后完成对象构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com