【问题标题】:Deserializing nested generic custom objects反序列化嵌套的通用自定义对象
【发布时间】:2014-04-03 06:34:53
【问题描述】:

我试图在 Java utils 中实现 Map 接口,但我会将数据存储在 Mongo 而不是内存中。为了类型安全,我还在其中包含了泛型。我想处理所有可能的类型 - 包装类、自定义类,这些类又可以在其中包含多个自定义类,并且还可能支持以下内容:

Map<String, Set<Map<String, SampleObject>>> or Map<String, Set<SampleObject>>

我正在使用 GSON 序列化 JSON 中的键和值并存储它们,并在获取时反序列化它们并返回。这适用于简单的泛型类型参数。但是当它嵌套时,我不知道它会如何工作。序列化仍然有效,因为我手头有对象。但是我如何知道反序列化时要返回哪个类?

还有什么我可以做的吗?

【问题讨论】:

  • 你的意思是SampleObject 可以是任何模型类吗?
  • @TechSpellBound:是的,SampleObject 可以是任何 POJO。
  • @BrianRoach:就像我提到的,我正在使用 GSON 进行序列化和反序列化。但是当我做这样的事情时:gson.fromJson(jsonString, SampleObject.class),我需要知道我正在尝试解析SampleObject而不是AnotherSampleObject的实例。另外,如果它是 JSON 数组,我需要使用 SampleObject[].class
  • 为什么对这个问题投反对票?请详细说明!

标签: java json generics serialization gson


【解决方案1】:

我认为这将由您的 JSON 密钥决定。例如,{"users" : {...}} 表示用户集合,U 可以将其映射到 Java 类中的 Set&lt;User&gt;。另外,这里可以考虑使用 JAXB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    相关资源
    最近更新 更多