可用版本:Dev (3.21) | 最新版 (3.20) | 3.19 | 3.18

Kotlin JSON访问

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

可以使用 JSON_GET_ELEMENT 函数JSON_GET_ATTRIBUTE 函数 来访问 JSON 数组元素或对象属性,它们会转换为 JSON 下标语法或类似语法

SELECT
  JSON_ARRAY(1, 2)->1
  JSON_OBJECT(KEY 'a' VALUE 1)->'a'
create.select(
  jsonGetElement(jsonArray(value(1), value(2)), 1)
  jsonGetAttribute(jsonObject("a", value(1)), "a")).fetch();

使用 kotlin 扩展模块,这些运算符也可以直接在 Field<JSON;>Field<JSONB> 上使用

package org.jooq.kotlin

operator fun Field<JSON?>.get(index: Int) = jsonGetElement(this, index)
operator fun Field<JSON?>.get(index: Field<Int?>) = jsonGetElement(this, index)
operator fun Field<JSON?>.get(name: String) = jsonGetAttribute(this, name)
operator fun Field<JSON?>.get(name: Field<String?>) = jsonGetAttribute(this, name)

// [... and more]

这允许使用下面更简洁的版本

create.select(
  jsonArray(value(1), value(2))[1],
  jsonObject("a", value(1))["a"]).fetch();

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo