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

如何使用JSONata转换指定JSON数组以适配Grafana Infinity插件?

使用JSONata将数组字段展开为带索引的独立字段(适配Grafana Infinity插件)

以下是实现需求的JSONata表达式,可直接在Grafana Infinity插件中使用:

$map($, function($item) {
  $merge([
    {"timestamp": $item.timestamp},
    $reduce($item.absoluteDeviationsX, function($acc, $val, $idx) {
      $merge([$acc, {$join(["absoluteDeviationsX", $idx]): $val}])
    }, {})
  ])
})

逻辑说明

  1. 遍历数组:用$map处理原JSON数组中的每个对象,确保每条数据都被转换
  2. 保留核心字段:单独提取原对象的timestamp,作为新对象的基础字段
  3. 展开数组元素:通过$reduce遍历absoluteDeviationsX数组,利用循环索引$idx拼接字段名(如absoluteDeviationsX0),将数组元素逐个转换为键值对,最终合并成完整对象

输入输出验证

修正后的输入JSON(原输入存在语法错误,已修正第二个对象的多余括号):

[
  {
    "timestamp": "2025-01-19T17:00:00Z",
    "absoluteDeviationsX": [10, 11, 12]
  },
  {
    "timestamp": "2025-01-20T17:00:00Z",
    "absoluteDeviationsX": [20, 21, 22]
  }
]

转换后输出:

[
  {
    "timestamp": "2025-01-19T17:00:00Z",
    "absoluteDeviationsX0": 10,
    "absoluteDeviationsX1": 11,
    "absoluteDeviationsX2": 12
  },
  {
    "timestamp": "2025-01-20T17:00:00Z",
    "absoluteDeviationsX0": 20,
    "absoluteDeviationsX1": 21,
    "absoluteDeviationsX2": 22
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:57:02