Логика парсера строк в Java

У меня есть строка, подобная приведенной ниже, которая может развиваться дальше с несколькими дополнительными условиями AND/OR/NOT, но поддерживает синтаксис.

String string = "apple,mango,name(
        AND(
              OR(
                  gender[male,female],
                  county[USA,India]
              ),
             language[spanish,english],
             education[masters,bachelors],
             NOT(
                 education[Phd]
             )
        )
     ),orange"

Нужно разобрать эту строку. частично успешно преобразовать эту строку как объект JSON. Но не мог сделать это полностью.

1 ответ

Решение

Вы можете легко преобразовать это в грубую строку JSON. Быстрый образец будет

String json = "{"+string.replace("(",":{").replace("[",":[").replace(")","}")+"}";

Конечно, вам нужно добавить это, чтобы сделать его действительным json, вставляя кавычки по необходимости "или".

Если у вас есть JSOn, вы сможете легко преобразовать его в Java-объект. Проверьте библиотеки Джексона или GSON.

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