У меня есть JSON из API, подобного этому:
{
"something": "something",
"example_1": true,
"something2": "something",
"example_2": false,
"example_3": true
}
Я хочу поместить все ключи example_x с их значениями на карту. Я предполагаю, что это возможно с регулярным выражением, но я не знаю, как это сделать.
Я знаю, что example_\d
будет регулярным выражением, но это все. Я не нашел похожих вопросов, но, возможно, я использовал неправильные условия поиска.
Информация: я использую библиотеку org.json для получения объекта JSON, но я могу изменить ее на другую библиотеку, если она работает.
Любая помощь будет оценена
Как я уже сказал, я понятия не имею, как правильно решить проблему, и из-за этого нет кода. Я бы знал, как это сделать, но я думаю, что это действительно неоптимизировано: цикл for, который проверяет с помощью jsonobject.has(), содержит ли он example_i, и если да, добавляет ключ и значение на карту, пока не сможет найти следующий
Вы разобрали JSON в JSONObject? Затем переберите поля, проверяя, соответствуют ли имена вашему шаблону.
Хорошо, я посмотрю это, спасибо!
Получил работу с этим: (Спасибо tgdavies за то, что сказал мне использовать итератор)
//jsonObject is the json in the question for example
HashMap Map<String, Boolean> = new HashMap<>();
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
if (key.matches("example_\\d+")) {
Map.put(key, jsonObject.getBoolean(key));
}
}
Пожалуйста, покажите код, который у вас есть до сих пор.