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

时间:2015-09-17 07:11:12

标签: android json retrofit

我尝试在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
}

1 个答案:

答案 0 :(得分:3)

如果您使用的是GSON,请在专用字段上使用Expose批注。

喜欢:

@Expose
private String property1;

@Expose
private int property2;

如果要为变量使用其他名称,可以尝试使用SerializedName注释,如:

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

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

我认为如果不发布完整的“A”课,那应该有用。