如何使用petitparser编写JSON格式化程序?

时间:2013-06-21 16:31:14

标签: parsing dart formatter petitparser

据我所知,PetitParser是一个解析器,我们可以定义语法和动作来解析一些文本。

我已成功使用其内置的JSON解析器来解析一些JSON字符串,但我想做更多。我想编写一个JSON格式化程序,它可以将JSON格式化为漂亮的打印样式。

但我不知道该怎么办。我是否必须创建一些节点并为解析的JSON构建树?怎么做?

我正在尝试寻找一些样品,但尚未找到。

1 个答案:

答案 0 :(得分:2)

PetitParser 并不直接帮助您进行漂亮的打印。

在特定的示例中,您可以编写将遍历地图的代码,然后解析器返回并按照您的意愿打印它。

或者(通常对于更复杂的语法),您可以继承JsonGrammar并生成自定义解析节点的AST。然后编写访问者或递归遍历节点以相应地格式化数据。 XML parser正是如此。

PetitParser for Smalltalk附带了一个名为 PrettyPetit 的小框架,它可以帮助您使用块布局引擎来最佳地放置,包装和对齐字符串;但是生成这种格式化指令的过程与上面手动执行的过程相同。