我正在尝试JsonAdapter
为我的 JSON 数据创建一个自定义,以绕过特定字段的序列化。以下是我的示例 JSON:
{
"playlistid": 1,
"playlistrows": [
{
"rowid": 1,
"data": {
"123": "title",
"124": "audio_link"
}
}
]
}
上面的 JSON 字段data
有动态键号,所以我想绕过这个数据字段值并返回JSONObject
。
我正在使用RxAndroid
,Retrofit2
与Observables
. 我创建了一个服务类:
public static <S> S createPlaylistService(Class<S> serviceClass) {
Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(baseURL)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(httpClientBuilder.build())
.addConverterFactory(MoshiConverterFactory.create());
return builder.build().create(serviceClass);
}
我正在使用 observable 调用此服务,如下所示:
@GET("http://www.mylink.com/wp-json/subgroup/{subgroupId}/playlist/{comboItemId}")
Observable<Playlist> getPlaylist(@Path("subgroupId") int subgroupId, @Path("comboItemId") int comboItemId);
然后我像这样运行它:
ServiceBuilder.createPlaylistService(FHService.class).getPlaylist(123, 33);
我的 Pojo 课程如下所示:
public class Playlist {
@Json(name = "playlistid")
public Long playlistid;
@Json(name = "playlistrows")
public List<Playlistrow> playlistrows = null;
}
public class Playlistrow {
@Json(name = "rowid")
public Long rowid;
@Json(name = "data")
public Object data;
}
问题是它会data
以这种格式返回一个值:
{
123=title,
124=audio_link
}
解析为无效JSONObject
。
我搜索了很多,也检查了一些Moshi
示例食谱,但我不知道如何绕过这个特定字段并返回有效的 JSONObject,因为我是这个Moshi
库的新手。