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

基于Jolt实现两种JSON输入的格式转换(含空值处理)

Jolt转换需求:处理两种JSON输入生成对应输出

输入示例

输入-1

{
  "alert_array": {
    "alerts": [
      {
        "id": "1234",
        "data": {
          "parameter": [
            {
              "key": "level",
              "value": "93.5"
            }
          ]
        }
      }
    ]
  }
}

输入-2

{
  "alert_array": {
    "alerts": [
      {
        "id": "1234",
        "data": {}
      }
    ]
  }
}

预期输出

预期输出-1

{
  "alertArray": [
    {
      "id": "1234",
      "properties": [
        {
          "key": "level",
          "value": "93.5"
        }
      ]
    }
  ]
}

预期输出-2

{
  "alertArray": [
    {
      "id": "1234",
      "properties": []
    }
  ]
}

Jolt转换规则

使用以下Jolt规范可实现需求,无论输入中data是否包含parameter数组,都能保证properties始终为数组类型:

[
  {
    "operation": "shift",
    "spec": {
      "alert_array": {
        "alerts": {
          "*": {
            "id": "alertArray[&1].id",
            "data": {
              "parameter": "alertArray[&2].properties"
            }
          }
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "alertArray": {
        "*": {
          "properties": []
        }
      }
    }
  }
]

规则说明

  1. Shift操作:完成字段重命名与结构映射
    • 将alert_array.alerts数组映射为alertArray数组
    • 保留每个告警项的id字段
    • 将data.parameter映射为目标字段properties
  2. Default操作:处理data为空的边界场景,当properties未被映射生成时,默认设置为空数组,确保输出格式统一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:09:24