【问题标题】:RapidJson And Boost Json ParserRapidJson 和 Boost Json 解析器
【发布时间】:2016-04-14 11:25:22
【问题描述】:

Boost库中Rapid JSON和Json解析器有什么区别吗(Boost\property_Tree\Json_parser.hpp)

谢谢。

【问题讨论】:

标签: json boost boost-propertytree rapidjson


【解决方案1】:

我比较了nativejson-benchmark 中的 37 个 C/C++ JSON 库的标准一致性和性能。

但是,我未能将 Boost.PropertyTree (1.60) 集成到基准测试中,因为它将数字、真、假、空类型解析为字符串。


编辑:为了更直接地回答这个问题,Boost.PropertyTree 无法提供大多数 JSON 库提供的 JSON 功能。另一方面,RapidJSON 是一个具有高一致性和高性能的 JSON 库。顺便说一句,除了解析/字符串化 JSON,RapidJSON 还提供流式 API、JSON 指针和 JSON 模式。这些功能在开源库中并不常见。

【讨论】:

  • 当然。它不是 JSON 库。这是一个属性树库。如果您需要 JSON 库,请使用 JSON 库。
  • json库和rapid json是一回事吗?
  • @user3262531 这就是问题所在,这就是我的回答。但是,Boost Property 不是 JSON 库。它使用一个(为属性树实现一种可能的后端)。
  • 对于 JSON 库,我的意思是提供 JSON 功能的库。 Boost.PropertyTree 提供了一些解析和序列化 JSON 的功能。它只是将表示存储在属性树中。每个提供 JSON 功能的库都有某种表示形式。我也测试过Qt、V8、C++ Rest SDK等,当然不只是一个“JSON库”。
【解决方案2】:

编辑 - Boost 库似乎只使用 RapidXML,而不是 RapidJSON。


你应该不关心它,因为它是库的一个实现细节。

所以答案可能是“不”(更有可能是“是”),而你绝对不会从中获得任何好处,因为你不能依赖它。

只需选择您自己的 XML 库并在需要的地方使用它:What XML parser should I use in C++?

IIRC Boost 主要修改了命名空间,因此当您选择 RapidXML 时不会发生 ODR 冲突

【讨论】:

  • 我发现我将 RapidJSON 误读为 RapidXML。同样适用,比照
  • 什么意思。你只有一种选择。那将是使用的那个
  • @user3262531 EDIT - Boost 库似乎只使用 RapidXML,而不是 RapidJSON。这就是为什么我对这个问题感到困惑(我知道 Boost 中的 RapidXML)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
相关资源
最近更新 更多