Instance Methodgrdb 7.4.0GRDB

jsonExtract(atPath:)

The JSON_EXTRACT SQL function.

SQLJSONExpressible.swift:316
iOS
16+
tvOS
17+
watchOS
9+
func jsonExtract(atPath path: some SQLExpressible) -> SQLExpression

Parameters

path

A JSON path.

For example:

let info = JSONColumn("info")

// SELECT JSON_EXTRACT(info, '$.firstName') FROM player
// → 'Arthur'
let firstName = try Player
    .select(info.jsonExtract(atPath: "$.firstName"), as: String.self)
    .fetchOne(db)

// SELECT JSON_EXTRACT(info, '$.address') FROM player
// → '{"street":"Rue de Belleville","city":"Paris"}'
let address = try Player
    .select(info.jsonExtract(atPath: "$.address"), as: String.self)
    .fetchOne(db)

Related SQL documentation: https://www.sqlite.org/json1.html#jex