Retrofit - 我可以映射响应数据字段吗?
Retrofit - Can I map response data fields?
我是 testing/creating 使用 Retrofit 的新 Basecamp API 的 REST 客户端。它看起来像这样:
class Project {
String name;
String appUrl;
}
interface Basecamp {
@GET("/projects.json")
List<Project> projects();
}
在 json 响应中,appUrl
的源字段称为 app_url
。除了重命名 class 中的字段之外,是否有一种简单的方法可以将响应数据映射到我的数据结构?
如果您使用 Jackson JSON 通过 Retrofit 进行解析,您可以使用 @JsonProperty 注释:
示例:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties (ignoreUnknown = true)
class Project {
@JsonProperty("name")
String name;
@JsonProperty("app_url")
String appUrl;
}
所以我在这个question中找到了答案。事实证明这可以使用 Gson 解决:
class Project {
String name;
@SerializedName("app_url")
String appUrl;
}
我是 testing/creating 使用 Retrofit 的新 Basecamp API 的 REST 客户端。它看起来像这样:
class Project {
String name;
String appUrl;
}
interface Basecamp {
@GET("/projects.json")
List<Project> projects();
}
在 json 响应中,appUrl
的源字段称为 app_url
。除了重命名 class 中的字段之外,是否有一种简单的方法可以将响应数据映射到我的数据结构?
如果您使用 Jackson JSON 通过 Retrofit 进行解析,您可以使用 @JsonProperty 注释:
示例:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties (ignoreUnknown = true)
class Project {
@JsonProperty("name")
String name;
@JsonProperty("app_url")
String appUrl;
}
所以我在这个question中找到了答案。事实证明这可以使用 Gson 解决:
class Project {
String name;
@SerializedName("app_url")
String appUrl;
}