gpt4 book ai didi

c - 如何使用 c yajl 进行流式传输

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:18 25 4
gpt4 key购买 nike

我已经使用 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这对于我想象的大文件会更好。

每当解析器遇到某些事情时,流式处理示例都会引发事件。就像当它遇到一个 bool 值时,它会引发一个事件,它发现了一个 bool 值,并且我得到了 bool 值。但是,我不知道 bool 值属于哪个键或对象。同样, map 关闭事件也会发生。我可以在那里做什么? map 关闭,太棒了。我有这个 yajl_gen 指针,但我不知道如何处理它。抱歉,如果这个问题含糊不清,或者我对 yajl 解析了解不够。谢谢阅读。

最佳答案

基本上,您为每个事件创建回调,然后在这些回调中,您可以逐渐构建数据结构的层次结构,并用 JSON 流中包含的数据填充它们。 map 开始/结束组成一个 JSON 对象。大多数时候,这两个事件之间的任何东西都是一个关联数组(键/值对)。键是一个字符串,它由映射键事件标记。该值可以是字符串、数字、 bool 值、数组(开始/结束数组事件),甚至是另一个对象(开始/结束映射)。等等等等。其中每一个都由相应的事件标记,例如开始/结束数组事件、字符串事件、数字事件或 bool 事件。随着 JSON 流的处理,事件一个接一个地逐渐发生,并允许您构建您可能想要的任何数据结构层次结构。

关于c - 如何使用 c yajl 进行流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com