Логика парсера строк в 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.