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

如何读取JSON文件中Role字段的值并存储到变量?求基础工具方案

从JSON文件提取指定字段内容的解决方案

问题背景

现有demo.json文件内容如下(注意:原文件末尾"Id": "1",的逗号需删除,否则JSON格式不合法):

"A": {
  "User": "xyz",
  "Role": {
    "Role1": [
      "piolet"
    ],
    "Role2": [
      "driver"
    ],
    "Role3": [
      "technician"
    ]
  },
  "Id": "1"
}

需要提取Role字段对应的内容(如下所示)并存储到变量中,使用grep仅能获取到{,无法得到完整内容:

"Role1": [
  "piolet"
],
"Role2": [
  "driver"
],
"Role3": [
  "technician"
]

解决方案

方法1:使用jq(推荐,结构化JSON处理工具)

jq是专门用于JSON数据处理的工具,能精准定位层级字段:

# 提取Role字段内容并存储到变量
role_content=$(jq '.A.Role' demo.json)

# 验证变量内容
echo "$role_content"

执行后变量role_content会存储预期的完整Role字段内容。

方法2:使用awk+sed(基础系统工具,无jq时可用)

利用文本匹配提取目标内容:

# 提取内容并存储到变量
role_content=$(awk '/"Role": {/{flag=1;next}/},/{if(flag){print;flag=0}}flag' demo.json | sed 's/^  //')

# 验证变量内容
echo "$role_content"
  • awk部分:匹配到"Role": {时开启打印标记,匹配到},(Role字段的闭合符)时关闭标记,期间打印所有行
  • sed部分:去除每行开头的两个缩进空格,匹配预期格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:20:49