gpt4 book ai didi

java - 你如何让 GSON 忽略 null 或空对象以及空数组和列表?

转载 作者:太空狗 更新时间:2023-10-29 22:39:04 27 4
gpt4 key购买 nike

我正在使用 Gson,我处于必须缩小某些 Json 字符串大小的情况。为此,我希望它不将空对象、空值、空列表和数组放入 Json 字符串中。

有直接的方法吗?

让我澄清一下:我希望跳过所有内容:emptyProp:{} 或 emptyArray:[]。我希望跳过任何只包含空属性的对象。

最佳答案

只要您不为 GsonBuilder 设置 serializeNulls(),默认情况下会排除 Null 值。

空列表的一种方法是创建一个 JsonSerializer

class CollectionAdapter implements JsonSerializer<List<?>> {
@Override
public JsonElement serialize(List<?> src, Type typeOfSrc, JsonSerializationContext context) {
if (src == null || src.isEmpty()) // exclusion is made here
return null;

JsonArray array = new JsonArray();

for (Object child : src) {
JsonElement element = context.serialize(child);
array.add(element);
}

return array;
}
}

然后注册

Gson gson = new GsonBuilder().registerTypeHierarchyAdapter(Collection.class, new CollectionAdapter()).create();

关于java - 你如何让 GSON 忽略 null 或空对象以及空数组和列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942118/

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