JsonLite 1.2.1

JsonLite 1.2.1

测试已测试
语种语言 Obj-CObjective C
许可 Apache 2
发布最新发布2014年12月

Andrii Mamchur 维护。



JsonLite 1.2.1

  • 作者
  • Andrii Mamchur

JsonLite 简介

什么是 jsonlite 和 JsonLite ObjC

jsonlite 是 JSON 令牌化器。它是一个轻量级的 C 库,可用于低级别的 JSON 处理或解析器开发。

JsonLite for Objective-C 是基于 jsonlite 的 JSON 解析器。它是 Objective-C 的高性能和灵活的 JSON 解析器。当您的应用程序需要以下功能时,您可以使用 JsonLiteObj 而不是 NSJSONSerialization

  • 避免键和值的重复
  • 将 JSON 绑定/映射到模型
  • 将模型序列化到 JSON
  • 处理 NSURL, NSDate, NSDecimal 或 base64
  • 分块处理
  • 自定义转换器

设计原则

jsonlite 被设计成一个基于 goto 的有限状态机。这种方法提供了许多好处,例如:

  • 非常快的解析速度
  • 低内存占用
  • 流式解析
  • 深度检查
  • JSON 有效负载的大小不会影响内存使用
  • 无需递归
  • 不需要 malloc
  • 良好的可测试性
轻量级

jsonlite 是一个超级轻量级解析器。它在具有 2k RAM 的微控制器上运行得很好。

解析深度为 32 的内存使用量

  • 64 位平台 - 200 字节
  • 32 位平台 - 116 字节
分而治之(divide et impera)

这是 jsonlite 的主要设计原则。`jsonlite` 不会执行任何自身解码,而是提供了强大的 API 用于令牌处理。让我们看看以下示例:

{
  "string":"Some\u0020string"
}

在这种情况下,我们有一个包含转义 Unicode 字符的字符串,`jsonlite` 将提供有关此令牌的所有信息。

token.start == 12; // Start of "Some\u0020string"
token.end == 28; // End of "Some\u0020string"
token.type.string == jsonlite_string_ascii | jsonlite_string_unicode_escape; // Token attributes

现在轮到你了,你可以

  • 解码令牌(jsonlite_token_to_uft8 或 jsonlite_token_to_uft16)
  • 将其作为原始值传递给 jsonlite_builder(见Beautifier 示例
  • 使用 jsonlite_parser_terminate 终止解析
  • 或做其他事情

jsonlite - 分割;你 - 统治。

代码覆盖率

  • 100% 函数覆盖率
  • 100% 语句覆盖率
  • 100% 分支覆盖率。

查看代码覆盖率配置

Image

许可证

jsonlite和JsonLite ObjC遵循Apache许可证,版本2.0

版权所有 2012-2013,Andrii Mamchur