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

AWS Step Functions:如何将JSON值作为JSONPath的一部分使用?

动态键获取JSON中对应值的实现方案

给定如下JSON数组,需要以第一个元素中ChallengeData.Answer的值为键,获取第二个元素CurrentHashes中对应的数值:

[
  {
    "ChallengeData": {
        "Answer": "d00b2151c0ee4b4cc688e0377940981a"
    },
    "ChallengeHash": "e3acc830b1de2b06a4040654ba6a2e4a"
  },
  {
    "CurrentHashes": {
      "d00b2151c0ee4b4cc688e0377940981a": 0,
      "673b352ffb77d08ea9953cc24907b5b3": 1,
      "c8fd8f2484063948c1cc7ec48ea2db0f": 2,
      "9d73f4c8620cf0e17b4c98e3272e2bff": 3
    }
  }
]

以下是不同环境下的实现方法:

1. 命令行环境(使用jq工具)

直接执行以下命令即可获取结果:

jq '.[1].CurrentHashes[.[0].ChallengeData.Answer]' your-json-file.json

解释:.[0]定位到数组第一个元素,提取ChallengeData.Answer的值作为键;.[1].CurrentHashes定位到第二个元素的哈希对象,通过方括号语法传入动态键获取对应值。

2. JavaScript/Node.js环境

通过动态属性访问实现:

// 假设已解析得到JSON数据(或从文件/接口读取后解析)
const jsonData = [
  {
    "ChallengeData": {
        "Answer": "d00b2151c0ee4b4cc688e0377940981a"
    },
    "ChallengeHash": "e3acc830b1de2b06a4040654ba6a2e4a"
  },
  {
    "CurrentHashes": {
      "d00b2151c0ee4b4cc688e0377940981a": 0,
      "673b352ffb77d08ea9953cc24907b5b3": 1,
      "c8fd8f2484063948c1cc7ec48ea2db0f": 2,
      "9d73f4c8620cf0e17b4c98e3272e2bff": 3
    }
  }
];

// 提取动态键并取值
const answerKey = jsonData[0].ChallengeData.Answer;
const targetValue = jsonData[1].CurrentHashes[answerKey];

console.log(targetValue); // 输出:0

注意:动态键必须使用方括号[]访问,不能用点语法(点语法仅适用于已知的固定键名)。

3. Python环境

利用字典的键访问特性实现:

import json

# 从字符串解析JSON(或从文件读取后解析)
json_str = '''
[
  {
    "ChallengeData": {
        "Answer": "d00b2151c0ee4b4cc688e0377940981a"
    },
    "ChallengeHash": "e3acc830b1de2b06a4040654ba6a2e4a"
  },
  {
    "CurrentHashes": {
      "d00b2151c0ee4b4cc688e0377940981a": 0,
      "673b352ffb77d08ea9953cc24907b5b3": 1,
      "c8fd8f2484063948c1cc7ec48ea2db0f": 2,
      "9d73f4c8620cf0e17b4c98e3272e2bff": 3
    }
  }
]
'''

json_data = json.loads(json_str)

# 提取键并获取对应值
answer_key = json_data[0]['ChallengeData']['Answer']
target_value = json_data[1]['CurrentHashes'][answer_key]

print(target_value) # 输出:0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:17:17