gpt4 book ai didi

java - 如何在 Retrofit for Android 中处理可选的 JSON 字段?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:43 26 4
gpt4 key购买 nike

我正在为 Android 应用程序开发 JSON 解析器。当我调用服务器获取数据时,有一些可选字段,我如何使用 GSON 转换器在 Retrofit 中处理它?<​​/p>

正常 react

{
"status":"SUCCESS",
"class-1":{
"class.enddate":"Jan/10/2016",
"class.startdate":"Jan/10/2015",
"class.title":"Physics 1",
"class.short.description":"Physics 1",
"class.description":"This is a Physics Class"
}
}

备用响应,当某些字段没有任何数据时

{
"status":"SUCCESS",
"class-1":{
"class.enddate":"Jan/10/2016",
"class.startdate":"Jan/10/2015",
"class.title":"Physics 1"
}
}

POJO 类

public class MyClass {
@Expose @SerializedName("status")
public String status;

@Expose @SerializedName("class-1")
public MyClassInformation myClassInformation;
}

public class MyClassInformation {
@Expose @SerializedName("class.title")
public String classTitle;

@Expose @SerializedName("class.short.description")
public String classShortDescription;

@Expose @SerializedName("class.description")
public String classDescription;

@Expose @SerializedName("class.startdate")
public String startDate;

@Expose @SerializedName("class.enddate")
public String endDate;
}

如何创建 POJO 类来处理不存在的可选字段?目前,当字段丢失时,整个 MyClassInformation 对象变为 NULL,请帮忙。

最佳答案

我设法通过反复试验解决了这个问题,设法通过删除 @Expose 注释并更改 Gson 构造函数来使其工作......现在,如果字段丢失并且只有丢失的字段,整个对象不会被清空或排除字段显示为空。

这是我改变的,来自

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

Gson gson = new GsonBuilder().create();

希望它能帮助任何正在寻找类似答案的人。

关于java - 如何在 Retrofit for Android 中处理可选的 JSON 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009078/

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