用于 Swift 的 JMESPath

JMESPath 的 Swift 实现,JMESPath 是一种用于 JSON 的查询语言。 此软件包完全符合 JMESPath 规范

用法

以下是一个简单的用法示例。

import JMESPath

// compile query "a.b"
let expression = try JMESExpression.compile("a.b")
// use query to search json string
let result = try expression.search(json: #"{"a": {"b": "hello"}}"#, as: String.self)
assert(String == "hello")

JMESPath 也会使用 Mirror 反射来搜索已在内存中的对象

struct TestObject {
  struct TestSubObject {
      let b: [String]
  }
  let a: TestSubObject
}
// compile query "a.b[1]"
let expression = try JMESExpression.compile("a.b[1]")
let test = TestObject(a: .init(b: ["hello", "world!"]))
// use query to search `test` object
let result = try expression.search(object: test, as: String.self)
assert(result == "world!")