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

JSONATA中如何使用变量作为键从对象中取值?

正确实现方法

你试的写法里,.[$test]本身是对的,但不生效大概率是变量定义的语法错了,或者环境里变量没正确传递。分两种常见场景说明:

1. 用jq处理JSON(最常见场景)

jq里变量赋值不用:=,要用单等号=,正确的取值写法就是.[$test]:

# 脚本内部定义变量并取值的示例
$test = "Account Name"; .[$test]

如果是命令行传参,得用--arg来传递变量,不能直接在jq表达式里硬写赋值:

# 命令行执行示例,input.json是你的目标JSON文件
jq --arg test "Account Name" '.[$test]' input.json

2. 用JSONPath查询

如果是用JSONPath(比如某些编程语言里的JSON查询库),变量引用语法要看具体工具:

  • 比如在Python的jsonpath-ng库中,要先把变量绑定到查询表达式:
    from jsonpath_ng import parse
    
    test = "Account Name"
    json_data = {"Account Name": "张三"}
    expr = parse(f"$['{test}']")
    result = [match.value for match in expr.find(json_data)]
    
  • 部分JSONPath实现支持直接用$[var]格式,但需要提前注入变量值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:52:12