gpt4 book ai didi

java - 为具有自己的 JSON 序列化实现的类编写 Gson TypeAdapter

转载 作者:行者123 更新时间:2023-12-01 12:16:22 25 4
gpt4 key购买 nike

我正在尝试序列化一个类,其中一个成员带有自己的 JSON 序列化实现。我不知道如何将它包含在其余属性中。例如

class Foo {
String fieldA;
String fieldB;
Bar bar;
}

Bar有一个方法toJSONString()。目前,我通过将 JsonSerializer 注册为 TypeAdapter 来包含它,例如:

class BarSerializer implements JsonSerializer<Bar> {
@Override
public JsonElement serialize(Bar bar, Type type, JsonSerializationContext ctxt) {
return new JsonParser().parse(bar.toJSONString());
}

}

我无法更改 Bar 的代码,或者无法直接使用其字段序列化它,因为它具有一些深层嵌套结构,并且我对其成员类类型没有任何控制。正如您在上面的方法中看到的,Bar 对象被序列化、解析并再次序列化。是否有其他简单/有效的方法在 Foo 中序列化 Bar

最佳答案

如果您想要高效的方式,建议使用TypeAdapter

以下说明复制自JsonSerializer的文档:

New applications should prefer TypeAdapter, whose streaming API is more efficient than this interface's tree API.

看看这个 link有关 TypeAdapter 的一些很好的示例。

关于java - 为具有自己的 JSON 序列化实现的类编写 Gson TypeAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26979330/

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