Извлечение указанного c раздела JSON из URL в Android? - PullRequest
0 голосов
/ 04 мая 2020

Я создаю небольшое приложение для отслеживания велосипедных станций по всему городу, и у меня есть API, который дает мне текущий статус доступности велосипедов на велосипедных станциях от компании, которая предоставляет услугу.

Мой план заключается в том, чтобы иметь своего рода интерактивную карту со всеми маркерами для каждой велосипедной станции, и когда пользователь нажимает одну из них, он получает информацию об этой указанной c велосипедной станции. У меня уже есть все местоположения, закодированные как маркеры на карте. Теперь мне нужно получить данные для указанной c велосипедной станции, по которой пользователь щелкает.

Ниже приведен пример части JSON, которую я получаю из API:

"number": INT,
"contract_name": "STRING",
"name": "STRING",
"address": "STRING",
"position": {
  "lat": DOUBLE,
  "lng": DOUBLE
},
"banking": BOOLEAN,
"bonus": BOOLEAN,
"bike_stands": INT,
"available_bike_stands": INT,
"available_bikes": INT,
"status": "STRING",
"last_update": 1588583133000
},
....

Эта структура одинакова для всех 100+ узлов JSON, которые я получаю из API.

У меня вопрос, как бы я go отфильтровал одного человека? запись как таковая от остальной части JSON. Параметр number является уникальным идентификатором каждой велосипедной станции.

Есть ли библиотека, которая может сделать это для меня? Моя идея (очень наивная) состояла в том, чтобы каждый раз сохранять все JSON локально, а затем через него go искать "number":X и затем анализировать нужные мне данные, хотя это, очевидно, крайне неэффективно, я это признаю.

Меня интересует только часть каждого JSON, которая будет показана пользователю: теги banking, bonus, available_bike_stands, available_bikes и status. Тег статуса является необязательным, он должен просто сказать мне, если велосипедная станция открыта (доступна) или закрыта.

Большое спасибо,

С уважением.

1 Ответ

0 голосов
/ 04 мая 2020

Получить данные из API -> Модификация

Сохранить локальные данные -> SharePreference, Room

получить часть каждого JSON -> вы создаете объект, который содержит некоторые поля вам нужны. когда вы используете модификацию, получите данные из API, тогда он вернет желаемый результат

class YourClass {
    @SerializedName("number")
    var number: Int? = null
    @SerializedName("banking")
    var banking: Boolean? = null
    @SerializedName("bonus")
    var bonus: Boolean? = null
    @SerializedName("available_bike_stands")
    var availableBikeStands: Int? = null
    //... fields you need
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...