我正在使用树参数来过滤从API返回的JSON数据,并且效果很好。我的问题是我需要从数组中获取一些我不关心的东西的特定数据。我想知道是否有一种方法,使用树命令,使用正则表达式或包含字符串进行过滤?
例如,要给我回复所有以MyProject开头的文件名:
http://myapi.com?tree=fileName=MyProject*
答案 0 :(得分:1)
正则表达式非常适合常规语法。
树往往遵循context free grammars。使用支持上下文感知操作的语言(例如 XPath )可能会做得更好。是的,一些非常简单的项目可能没有 XPath 的额外功能;但是,一旦你踩到一个超出常规语法可能范围的用例(它们只支持一小部分可以搜索的内容),用手中的工具完成搜索几乎是不可能的。
如果您想了解常规语法是如何有限制的,请研究the pumping lemma,然后深入思考它的含义。 A quick brush-up on parsing theory might also be useful。你反对数学,包括数学部分,包括逻辑运算。这不是一个难以解决的问题,已经证明正则表达式不能与无上下文语法匹配。
如果您对更快完成工作更感兴趣。我建议您先阅读XPath并尝试利用已有的工具之一,或者至少将其作为树匹配工作的指南。
答案 1 :(得分:1)
我发现使用不使用JSON而是切换到XML,您可以使用XPATH进行过滤。查找名称以“Test”开头的所有工作网址的示例如下:
Handler2