Spanker 被 Sextant 使用,为 Swift 提供一流的 JSONPath 查询功能。
Spanker 是一个非常快速、内存效率极高的 Swift JSON 反序列化器,适用于嵌入到其他 Swift JSON 工具中。Spanker 是一种中间件,它提供了一个分层数据结构,可以以最小的开销通用地访问 JSON blob。
零歧义性
Spanker 不使用 Any
;数据结构中每个元素的类型都必须能够以高性能的方式轻松确定。这是 Spanker 和 JSONSerialization 之间的主要区别,因为 Swift 中的动态转换(即 as?
)成本很高。
保留顺序
Swift 中的字典本质上是无序的。Spanker 作为一个其他工具依赖的工具,会保留数据结构的顺序,使其与底层数据中的顺序一致。
内存效率
Spanker 使用的数据结构不会从原始 JSON blob 中进行任何复制,从而大大降低了处理开销。如果您想要拥有数据的副本(即类似于 JSONSerialization 的输出),只需在 JsonElement 上调用 reify() 即可。这样,您只需为提取您关心的 JSON 层次结构的特定部分付出代价。
["This is a string", /\d+/ig, "This is another string"]