gpt4 book ai didi

android - 如果模型的属性是私有(private)的,则 Retrofit Android 无法将 JSON 响应转换为模型

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:18 26 4
gpt4 key购买 nike

我尝试在 Android 上使用 Retrofit,但遇到了这个问题。我想从 API 获取 JSON 格式的数据并将其转换为我的应用程序中的模型。

这是我的模型

public class A {
private String property1;
private int property2;

//default constructor, getter and setter below
}

这是我的服务

public interface TestService {
@GET("/a")
void getA(Callback<A> callback);
}

当我使用 TestService 检索数据时,它不会返回错误,但会返回一个空类 A。如果我将类 A 的属性更改为 public,那么它将被转换为正确的对象 A

编辑问题

这是我要转换成模型 A 的 JSON 示例

{
"property1" : "content",
"property2" : 1
}

最佳答案

如果您使用 GSON,请在您的私有(private)字段上使用 Expose 注释。

喜欢:

@Expose
private String property1;

@Expose
private int property2;

如果你想为你的变量使用不同的名称,你可以尝试使用 SerializedName 注释:

@Expose
@SerializedName("property1")
private String p1;

@Expose
@SerializedName("property2")
private int p2;

我认为这应该可行,如果不发布完整的“A”类。

关于android - 如果模型的属性是私有(private)的,则 Retrofit Android 无法将 JSON 响应转换为模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32624455/

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