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

求满足if-else条件的Jolt Spec:依据yang:operation处理desc字段

Jolt条件逻辑配置解决方案

需要实现Jolt的if-else逻辑:当yang:operation字段值为delete时,将同级的desc字段放入no节点下;否则直接保留desc字段原结构。现有配置未触发条件分支,以下是具体输入、现有配置、期望输出及正确配置。

输入JSON

{
  "ABC": [
    {
      "@desc": {
        "yang:operation": "delete"
      },
      "desc": "attr1"
    }
  ]
}

现有Jolt配置(未生效)

[
  {
    "operation": "shift",
    "spec": {
      "ABC": {
        "*": {
          "\@desc": {
            "yang:operation": {
              "#delete": {
                "desc": "no.desc.\$\.DESC.\.DESC"
              },
              "*": {
                "desc": "desc.\$\.DESC.\.DESC"
              }
            }
          },
          "desc": "desc.\$\.DESC.\.DESC"
        }
      }
    }
  }
]

期望输出

{
  "no" : {
    "desc" : {
      "$.DESC" : {
        ".DESC" : "attr1"
      }
    }
  }
}

正确的Jolt配置

[
  {
    "operation": "shift",
    "spec": {
      "ABC": {
        "*": {
          "@desc": {
            "yang:operation": {
              "delete": {
                // 向上回溯两层引用同级的desc字段
                "&2.desc": "no.desc.\\$.DESC.\\.DESC"
              },
              "*": {
                "&2.desc": "desc.\\$.DESC.\\.DESC"
              }
            }
          }
        }
      }
    }
  }
]

配置说明

  1. 条件匹配修正:原配置中#delete是生成固定字符串,无法匹配yang:operation的字段值,改为直接用"delete"匹配目标值。
  2. 字段引用修正:在yang:operation层级下,用&2.desc向上回溯两层,定位到包含@desc和desc的父对象,正确获取desc的内容。
  3. 移除冗余配置:删除原配置中单独定义的"desc": "desc.\\$.DESC.\\.DESC",避免覆盖条件分支的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:13:07