如何为json对象编写正则表达式?

时间:2013-02-28 18:30:59

标签: java regex

我是正则表达式的新手,已经要求写一些复杂的表达式(好吧,它们可能很简单,但对我来说它们不是:))。
我尝试了很多变化,但从未成功过。我想写的表达方式是:
1. {“d”:{“results”:SOME_JSON_OBJECT}}
2. {“d”:{“results”:{“JSON_KEY_AS_STRING”:SOME_JSON_ARRAY / OBJECT}}}
3. {“d”:{“results”:[SOME_JSON_OBJECTS]}}
4. {“d”:SOME_JSON_ARRAY / OBJECT_OR_AN_PRIMITIVE}

请注意,ANY_VALUE可以是任何东西。唯一重要的是所有不是ANY_VALUE的字符,包括所有“特殊”字符,例如“,{,},[,],等等......

有人可以帮忙吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

Java正则表达式风格不支持正则表达式中的递归模式(PCRE和.NET具有允许递归模式的扩展)。

因此,您无法正确解析对象,因为它们可以具有任意深度。你需要的是一个JSON解析器,如果你想自己编写,我建议你看看解析器工具,如ANTLR或GOLD,它们可以帮助你完成这个过程(你为解析编写语法,然后是工具为您创建实际的解析代码。

Here是我前段时间为GOLD写的JSON语法。