我已经和yajl玩了几天,非常喜欢树节点模型。解析完成后,您将获得json文件的结构,并可以查看它。比如这里的例子:
http://lloyd.github.io/yajl/yajl-2.0.1/example_2parse_config_8c-example.html
这个例子很好,很容易理解,但我想知道如何使用他们在这里展示的流示例。http://lloyd.github.io/yajl/yajl-2.0.1/reformatter_2json_reformat_8c-example.html这对我想象中的大文件会更好。
流示例在解析器遇到某些事情时遍历并引发事件。就像当它遇到一个布尔值时,它会引发一个事件,它发现一个布尔值,然后我得到一个布尔值。但是,我不知道布尔值属于哪个键或对象。同样,map close事件也会发生。我在那里能做什么?地图关闭了,太好了。我拿到了一个yajlúu-gen的指针,我不知道该怎么办。如果这个问题模糊不清或者我对yajl解析了解不够,请道歉。谢谢你的阅读。

最佳答案

基本上,您可以为每个事件创建回调,然后在这些回调中,您可以逐步构建数据结构的层次结构,并用JSON流中包含的数据填充它们。映射开始/结束组成一个JSON对象。大多数情况下,这两个事件之间的任何内容都是关联数组(键/值对)。键是一个字符串,它由映射键事件标记。值可以是字符串、数字、布尔值、数组(开始/结束数组事件),甚至是另一个对象(开始/结束映射)。等等等等。每个事件都由相应的事件标记,如开始/结束数组事件、字符串事件、数字事件或布尔事件。随着JSON流的处理,事件一个接一个地逐渐出现,并允许您构建所需的任何数据结构层次结构。

09-08 02:34