java 中的字符串解析器逻辑

String parser logic in 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 对象。但是做不到完全。

您可以轻松地将其转换为粗略的 json 字符串。一个快速示例是

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

当然,您需要根据需要插入引号 " 或 ' 来使其成为有效的 json。

一旦拥有 JSOn,您就可以轻松地将其转换为 java 对象。检查 Jackson 或 GS​​ON 库。