gpt4 book ai didi

java - 自定义 json 序列化调整

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:11 25 4
gpt4 key购买 nike

我有这样一个类

class MData
{
String version;
String ttl;
Foo[] foos;
}

其中 Foo 是类 Foo {String key;字符串值

并使用 gson 序列化 MData 实例创建这样的 json

{
"version" : "1.0",
"ttl" : 4,
"foos" : [ {"key" : "fooKey1", "value" : "fooValue1" } , {"key" : "fooKey2", "value" : "fooValue2" }]
}

但我想知道是否有办法将 json 生成操作成这样

{
"version" : "1.0",
"ttl" : 4,
"fooKey1" : "fooValue1",
"fooKey2" : "fooValue2"
}

无需重写原始类或引入中间类型。

我有很多具有键/值属性的现有实体,要求是有一个平面 json,我正在寻找一种方法来调整生成,以便获得所需的输出。

最佳答案

我认为您正在寻找 Custom Serializers and Deserializers .我真的不会推荐你正在做的那种自定义序列化。因为它正在改变数据的语义。如果您想在不更改其语义的情况下过滤或转换某些数据,通常会使用自定义序列化程序。

话虽这么说,你可以这样做:

public class MDataSerializer implements JsonSerializer<MData> {

@Override
public JsonElement serialize(MData src, Type typeOfSrc, JsonSerializationContext context) {

JsonObject obj = new JsonObject();
obj.addProperty("version", src.version);
obj.addProperty("ttl", src.ttl);

for(Foo foo : src.foos) {
obj.addProperty(foo.getKey(), foo.getValue());
}

return obj;
}
}

关于java - 自定义 json 序列化调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16902313/

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