You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写JQ表达式在JQ Play中生成指定格式的主键输出?

JQ表达式实现主键格式化输出

原始JSON数据

{
"body":{
"primarykey": [
    "book_id",
    "edition_id"
],
"members": [
    {
        "name": "book_id",
        "type": "NUMBER"
    },
    {
        "name": "edition_id",
        "type": "NUMBER"
    },
    {
        "name": "title",
        "type": "VARCHAR2"
    }
],
"links": [
    {
        "rel": "collection",
        "href": "https://tdcvm28s16.bcone.com:7002/ords/testords/metadata-catalog/",
        "mediaType": "application/json"
    },
    {
        "rel": "canonical",
        "href": "https://tdcvm28s16.bcone.com:7002/ords/testords/metadata-catalog/books/",
        "mediaType": "application/json"
    },
    {
        "rel": "alternate",
        "href": "https://tdcvm28s16.bcone.com:7002/ords/testords/open-api-catalog/books/",
        "mediaType": "application/openapi+json"
    },
    {
        "rel": "describes",
        "href": "https://tdcvm28s16.bcone.com:7002/ords/testords/books/"
    }
]
}
}

当前使用的JQ表达式

.body.primarykey[] | "{" + . + "}"

当前输出结果

"{book_id}"
"{edition_id}"

期望输出

{"book_id"},{"edition_id"}

正确JQ表达式

.body.primarykey | map("{" + . + "}") | join(",")

说明

  1. 直接定位到primarykey数组,避免逐个输出元素
  2. 用map()遍历数组,将每个主键格式化为{"主键名"}的字符串
  3. 最后通过join(",")把所有格式化后的字符串用逗号连接成一行,同时自动去除默认的字符串引号

内容的提问来源于stack exchange,提问作者sujay777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:52:17