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

JSONata动态引用JSON键问题:变量访问属性未达预期

JSONata动态键访问问题解决

问题说明

JSON对象包含动态生成的字符串键,尝试用JSONata访问第一个键时,x字段未得到预期结果,期望x的值和y完全一致。

原JSONata表达式

(
    $firstDate := $keys(slice)[0];
    $.{
      "firstDate": $firstDate,
      "x": slice.$firstDate,
      "y": slice."Friday, February 28"
    }
)

输入JSON

{
  "slice": {
    "Friday, February 28": [
      {
        "key": "friday"
      },
      {
        "key": "february"
      }
    ]
  }
}

预期输出

{
  "firstDate": "Friday, February 28",
  "x": [
    {
      "key": "friday"
    },
    {
      "key": "february"
    }
  ],
  "y": [
    {
      "key": "friday"
    },
    {
      "key": "february"
    }
  ]
}

解决方法

问题根源是点语法无法解析变量作为键名,slice.$firstDate会把$firstDate当作字面量键名,而非变量。需要改用方括号语法来访问动态键:

修改后的JSONata表达式:

(
    $firstDate := $keys(slice)[0];
    $.{
      "firstDate": $firstDate,
      "x": slice[$firstDate],
      "y": slice."Friday, February 28"
    }
)

使用slice[$firstDate]后,JSONata会解析变量$firstDate的值作为键名,从而正确获取对应属性,让x的结果和y一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:25:13