yajl 2.0.4

yajl 2.0.4

测试已测试
Lang语言 CC
许可证 自定义
发布最后发布2014年12月

Michael Nisi维护。



yajl 2.0.4

  • 作者
  • Lloyd Hilaiel

    This is YAJL 2, for the legacy version of YAJL.  see
          https://github.com/lloyd/yajl/tree/1.x

欢迎使用另一个 JSON 库(YAJL)

为什么世界还需要另一个用于解析 JSON 的 C 库?

这是一个好问题。在审查当前的 C 语言 JSON 解析库时,我发现没有一个完全符合我的要求。这些要求是:0.用 C 语言编写 1.可移植 2.健壮 – 尽可能地接近“崩溃防止” 3.数据表示独立 4.快速 5.生成详细、有用的错误消息,包括输入文本中错误发生的位置 6.可以从流中解析 JSON 数据 7.易于使用 8.小巧

数字 3、5、6 和 7 尤其难以找到,这也是我最终创建 YAJL 的原因。本文档将向您介绍 YAJL 的一些重要方面。

YAJL 是免费的。

许可自由度意味着您可以在开源和商业产品中使用它而不收取任何费用。关于许可,我还有一个请求:如果您发现错误,请给我发电子邮件,或者更好的是,发起真正改革并修复。

移植 YAJL 应该非常容易,其实现是 ANSI C。如果您将其移植到新的系统,我非常希望听到并合并您的补丁。

YAJL 是数据表示独立的。

BYODR!许多 JSON 库将基于结构的表示强加给您。在某些情况下,这是一个优点,在其他情况下则是一个缺点。YAJL 通过回调机制保持对内存表示的无关性。所以如果您想使用 YAJL 来构建内存表示,可以这样做,但是您必须提供定义和填充内存结构的代码。

这也意味着 YAJL 可以由其他(较高级)JSON 库使用,如果需要的话。

YAJL 支持流解析

这意味着您不需要在内存中以文本的形式保留整个 JSON 表示。这使得 YAJL 成为过滤项目的理想选择,其中需要将 YAJL 从一种形式转换为另一种形式(即 XML)。所提供的 JSON 美化打印器是一个这样的筛选程序的示例。

YAJL 是快速的

执行最小的内存复制。如果可能,YAJL返回客户端提供的文本中的指针(即对于没有嵌入转义字符的字符串,希望是常见情况)。我投入了大量努力对性能进行剖析和调整,但为了保持接口简洁、规模小和灵活,忽略了几项可能的性能提升。我的希望是YAJL的表现将与其他最快的JSON解析器相当。

YAJL应将对您的应用程序的CPU和内存需求降到最低。

YAJL非常小巧。

无脂。无奶油。

享受吧,Lloyd - 2007年7月