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

如何使用JMESPath提取嵌套JSON中hostnames字段的值?

问题:提取嵌套JSON字符串中的hostnames值

原始JSON数据:

[
  {
    "freeform-tags": {
      "ADB$MIGRATION1": "{\"hostnames\":[\"Test-company1\",\"Test-company2\"],\"port\":1521,}",
      "databasetype": "QA"
    }
  }
]

核心问题

你之前的JMESPath表达式失效的原因有两点:

  1. ADB$MIGRATION1对应的值是JSON格式的字符串,而非直接的JSON对象,常规属性访问语法无法读取其中字段;
  2. 该JSON字符串本身存在语法错误("port":1521,末尾多余逗号),即使尝试解析也会失败。

解决方案

步骤1:修正JSON字符串语法

先把ADB$MIGRATION1对应的字符串修正为合法JSON,去掉末尾多余逗号:

"{\"hostnames\":[\"Test-company1\",\"Test-company2\"],\"port\":1521}"

步骤2:使用JMESPath解析并提取字段

用from_json()函数将字符串解析为可访问的对象后,再提取hostnames,正确表达式如下:

[].from_json("freeform-tags"."ADB$MIGRATION1").hostnames

表达式说明

  • []:遍历顶层数组中的每个对象;
  • from_json("freeform-tags"."ADB$MIGRATION1"):将目标JSON字符串解析为可访问的JSON对象;
  • .hostnames:访问解析后对象的hostnames属性。

执行后返回结果:

[
  ["Test-company1", "Test-company2"]
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:12:42