我正在使用 Retrofit 和 JacksonConverter 从 API 获取 JSON 数据。
JSON 响应是这样的:-
[
{
"id": 163,
"name": "Some name",
"nested": {
"id": 5,
"name": "Nested Name",
}
}
]
但在我的班级中,我只想要父对象的 id、名称和嵌套对象的名称
我有这门课:-
@JsonIgnoreProperties(ignoreUnknown = true)
class A{
@JsonProperty("id")
int mId;
@JsonProperty("name")
String mName;
@JsonProperty("nested/name")
String mNestedName;
}
我不想为 A 中的嵌套对象创建另一个对象。我只想将嵌套对象的名称字段存储在 A 中。
上面的类不会抛出任何异常,但 mNestedName 将为空。
有没有办法得到这样的数据?我是否需要更改 mNestedName 的 @JsonProperty。
这就是我声明我的改造实例的方式
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(JacksonConverterFactory.create())
.baseUrl(mBaseUrl)
.client(okHttpClient)
.build();
return retrofit;
我正在通过这个获取数据:-
@GET("something/list/")
Call<List<A>> getA(@Header("Authorization") String authorization);