Наша команда решила использовать Retrofit 2.0, и я делаю некоторые начальные исследования этой библиотеки. Как указано в заголовке, я хочу проанализировать некоторые вложенные объекты JSON через Retrofit 2.0 в нашем приложении для Android.
Например, вот вложенный объект JSON в формате:
{
"title": "Recent Uploads tagged android",
"link": "https://www.flickr.com/photos/tags/android/",
"description": "",
"modified": "2015-10-05T05:30:01Z",
"generator": "https://www.flickr.com/",
"items": [
{
"title": ...
"link": ...
"media": {"m":"This is the value I want to get:)"}
"description": ...
"published": ...
"author": ...
"author_id": ...
"tags": ...
},
{...},
...
]
}
Мне интересны объекты JSON внутри массива items
. Я заметил, что есть некоторые сообщения о разборе вложенных объектов JSON через Retrofit 1.X, но последние API Retrofit 2.0 сильно изменились, что сбивает с толку при адаптации их к новым API.
Два возможных решения приходят в голову:
- Напишите мою собственную фабрику JSON конвертеров, которая расширяет Converter.Factory.
- Вернуть необработанный ответ в виде типа String и проанализировать его самостоятельно. Но это не так просто получить сырой ответ от Retrofit 2.0 в соответствии с моими первоначальными исследованиями. Retrofit 2.0, по-видимому, настаивает на преобразовании ответа во что-то, прежде чем передать его мне, и Retrofit не предоставляет своего собственного
StringConverter
. (Я могу ошибаться ~)
Обновление: на самом деле мы можем получить необработанный ответ, установив JSONElement
в качестве pojo для интерфейса HTTP API и используя GSONConverter, предоставленный Retrofit, в качестве конвертера.