2

我正在尝试JsonAdapter为我的 JSON 数据创建一个自定义,以绕过特定字段的序列化。以下是我的示例 JSON:

{
  "playlistid": 1,
  "playlistrows": [
    {
      "rowid": 1,
      "data": {
        "123": "title",
        "124": "audio_link"
      }
    }
  ]
}

上面的 JSON 字段data有动态键号,所以我想绕过这个数据字段值并返回JSONObject

我正在使用RxAndroid,Retrofit2Observables. 我创建了一个服务类:

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库的新手。

4

0 回答 0