Найдите ключи в JSON с регулярным выражением и поместите их на карту в java

У меня есть JSON из API, подобного этому:

{
  "something": "something",
  "example_1": true,
  "something2": "something",
  "example_2": false,
  "example_3": true
}

Я хочу поместить все ключи example_x с их значениями на карту. Я предполагаю, что это возможно с регулярным выражением, но я не знаю, как это сделать.

Я знаю, что example_\d будет регулярным выражением, но это все. Я не нашел похожих вопросов, но, возможно, я использовал неправильные условия поиска.

Информация: я использую библиотеку org.json для получения объекта JSON, но я могу изменить ее на другую библиотеку, если она работает.

Любая помощь будет оценена

Пожалуйста, покажите код, который у вас есть до сих пор.

tgdavies 21.12.2020 22:37

Как я уже сказал, я понятия не имею, как правильно решить проблему, и из-за этого нет кода. Я бы знал, как это сделать, но я думаю, что это действительно неоптимизировано: цикл for, который проверяет с помощью jsonobject.has(), содержит ли он example_i, и если да, добавляет ключ и значение на карту, пока не сможет найти следующий

Lulonaut 21.12.2020 22:46

Вы разобрали JSON в JSONObject? Затем переберите поля, проверяя, соответствуют ли имена вашему шаблону.

tgdavies 21.12.2020 22:50

Хорошо, я посмотрю это, спасибо!

Lulonaut 21.12.2020 22:53
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
334
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Получил работу с этим: (Спасибо 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));
    }
}

Другие вопросы по теме