如何读取json格式文本的字符流

时间:2014-05-25 00:51:05

标签: c++ json

我正在处理一个子进程(使用fork / exec创建 - 也就是the child),它在std-out上输出一些json格式的文本。

我在父进程和子进程之间有一个管道,其中父进程一次读取子进程std-out(使用getc)。

父级没有使用阻塞waitpid函数,但继续检查io管道中的任何字符。

- 到目前为止,所有内容都已实施且功能正常 -

我正在使用可用于读取json文件的json c ++库。

但显然有一半写的json文件无法读取;由于父母一次从孩子那里读取一个角色,如何在检测到第一个有效的json对象之前跟踪角色等等?

如果我不清楚,请告诉我,所以我试着改写。

2 个答案:

答案 0 :(得分:0)

如果您的解析器不支持流式传输,请考虑另一个库。

yajl是用于流式JSON的ANSI-C解析器,它应该与您的C ++代码一起使用。

json.org主页底部列出了许多其他C和C ++工具。其中一个可能会更好。

答案 1 :(得分:0)

"第一个有效的json对象"令人不安。 JSON只允许一个顶级对象,所以你应该能够读到EOF(假设你已经正确关闭了你的管道)。