gpt4 book ai didi

android - 如何使用 Gson 跳过空条目

转载 作者:搜寻专家 更新时间:2023-11-01 07:59:33 25 4
gpt4 key购买 nike

在使用 Gson 反序列化 JSON 时,有没有办法跳过 JSON 数组中的空条目?

[
{
text: "adsfsd...",
title: "asdfsd..."
},
null,
{
text: "adsfsd...",
title: "asdfsd..."
}
]

结果列表有 3 个条目,第二个为空。我想将 Gson 配置为跳过空值,但我找不到方法。

最佳答案

您可以通过编写自己的自定义 gson JsonDeserializer 来排除空值

假设你有你的模型类

 class GetData {
private String title;
private String text;
}

class CustomDeserializer implements JsonDeserializer<List<GetData>> {

@Override
public List<GetData> deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context) throws JsonParseException {

JsonArray jsonArray = jsonElement.getAsJsonArray();

List<GetData> list=new ArrayList<>(30);
Gson gson = new Gson();

for (JsonElement element : jsonArray) {
// skipping the null here, if not null then parse json element and add in collection
if(!(element instanceof JsonNull))
{
list.add(gson.fromJson(element, GetData.class));
}
}

return list;
}

终于可以解析了

Gson gson = new GsonBuilder().registerTypeHierarchyAdapter(Collection.class, new CustomDeserializer()).create();
gson.fromJson(builder.toString(), Collection.class);

关于android - 如何使用 Gson 跳过空条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23078339/

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