【问题标题】:How to implement LibGDX Json.Serializable with default reader and custom writer如何使用默认阅读器和自定义编写器实现 LibGDX Json.Serializable
【发布时间】:2014-11-20 10:16:03
【问题描述】:

我想使用默认的 LibGDX Json 反序列化器来读取 JSON 文件,但实现我自己的方法将类写回 JSON 文件。当我实现 Json.Serializable 时,它​​迫使我同时实现 read 和 write 方法。如何在 read 方法中调用默认的反序列化器?

【问题讨论】:

    标签: json libgdx json-deserialization


    【解决方案1】:

    我一直在寻找同样的东西,最后这个实现的读取方法对我有用,我希望它也对你有用:

    @Override
    public void read(Json json, JsonValue jsonMap) {
    
        json.readFields(this, jsonMap);
    }
    

    【讨论】:

      【解决方案2】:

      你仍然可以让你的类实现 Json.Serializable。将序列化程序的 write 方法留空,并根据需要实现 read 方法。如果您不打算使用它,则将其留空并没有错。

      【讨论】:

      • 我实际上是在尝试实现 write 方法并将 read 方法保留为默认值。我尝试将 read 方法留空,但实际上它并没有读取任何内容。
      • 不使用上面提到的序列化器,你现在如何读写?
      • 哪个序列化程序?默认序列化程序还是我编写的自定义序列化程序?当我不为该类实现 Json.Serializable 接口时,默认读取器和写入器工作得非常好,除了写入器输出太多变量,而这些变量对于对象的实例化并不真正需要。我当前对 Json.Serializable 接口的实现也适用于 read 和 write 方法,只是我有点懒,宁愿使用默认阅读器,因为它可以完成我需要的一切,而无需手动阅读和检查每个 Json 条目。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      相关资源
      最近更新 更多