我和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这对我想象的大文件会更好。
当解析器遇到某些事情时,流示例会通过并引发事件。就像遇到一个布尔值一样,它会引发一个事件,它发现了一个布尔值,并给出了布尔值。但是,我不知道布尔所属的键或对象是什么。同样,地图关闭事件发生。那我能做什么?地图关闭了,很棒。我有这个yajl_gen指针,我不知道该怎么做。如果这个问题含糊不清,或者我对yajl解析不够了解,请道歉。谢谢阅读。
答案 0 :(得分:0)
基本上,您为每个事件创建回调,然后在这些回调中,您可以逐步构建数据结构的层次结构,并使用JSON流中包含的数据填充它们。 Map start / end组成一个JSON对象。大多数情况下,这两个事件之间的任何事物都是关联数组(键/值对)。键是一个字符串,它由一个map键事件标记。值可以是字符串,数字,布尔值,数组(开始/结束数组事件),甚至是另一个对象(开始/结束映射)。等等,等等。其中每个都由相应的事件标记,例如开始/结束数组事件,字符串事件,数字事件或布尔事件。随着JSON流的处理,这些事件逐渐逐渐发生,并允许您构建您可能需要的任何数据结构层次结构。