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

DataWeave重命名JSON字段时AnyPoint Studio报类型不匹配问题

DataWeave运行正常但编辑器报类型错误相关问题

接口返回原始结构

调用WebService接口获取到的JSON响应如下:

{
    "success": true,
    "timestamp": 1657529234,
    "source": "EUR",
    "quotes": {
        "EURUSD": 1.018589,
        "EURNOK": 10.254409,
        "EURPLN": 4.774992
    }
}

转换需求

移除quotes对象下所有键名的前缀EUR:例如将键EURUSD转换为USD,对应值保持不变,最终得到形如"USD":1.018589的结构。

实现代码与运行结果

编写的DataWeave 2.0转换代码如下:

%dw 2.0
import * from dw::core::Strings
output application/json
---
{
    success: payload.success,
    timestamp: payload.timestamp,
    source: payload.source,
    rates: payload.quotes mapObject ((val, key) ->{
        (substring(key,3,6)):val
    })
}

代码实际运行输出完全符合预期,结果如下:

{
  "success": true,
  "timestamp": 1657529234,
  "source": "EUR",
  "rates": {
    "USD": 1.018589,
    "NOK": 10.254409,
    "PLN": 4.774992
  }
}

遇到的问题

AnyPoint Studio编辑器提示1个类型校验问题,错误信息如下:

Expecting Type: `{ K?: V }`, but got: `Array<{|EURUSD: Numb...r, EURPLN: Number|}>`.
    |-- From: `{ K?: V }`
    |---- From: mapObject(object: `{ K?: V }`, mapper: (value: `V`, key: `K`, index: `Number`) -> `Object`) -> `Object`

已为Transform Message组件配置了对应的输入元数据,存在疑问:为什么代码运行无异常,但编辑器会报上述类型错误?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:54:18