解析 json 并仅打印值

parsing json and print only values

我有这样的 json 对象 :

 [ {
    "name": "ACCOUNT-V1",
    "version": "1.3.0"
  },
  {
    "name": "IDENTIFIER-V1",
    "version": "1.1.0"
  },
  {
    "name": "LOCATION-V1",
    "version": "1.6.0"
  }
]

我想这样解析打印

ACCOUNT-V1 1.3.0
IDENTIFIER-V1 1.1.0
LOCATION-V1 1.6.0

尝试过

cat json_content.json | jq ' .[] | .name .version'

在输出中得到空数组[]

在JSON中:

  • [ .. ] 用于数组
  • { .. } 是对象

所以如果你把你的 json 放到像

这样的变量中
const jsx = [ {
    "name": "ACCOUNT-V1",
    "version": "1.3.0"
  },
  {
    "name": "IDENTIFIER-V1",
    "version": "1.1.0"
  },
  {
    "name": "LOCATION-V1",
    "version": "1.6.0"
  }
];

它将是:

  • jsx[0].name = "ACCOUNT-V1"
  • jsx[2].version = "1.6.0"
  • 等等
jq --raw-output '.[] | "\(.name) \(.version)"'

在哪里

  • .[] 遍历数组

  • "\(.name) \(.version)" 使用 nameversion 键创建一个字符串
    Using string interpolation

  • --raw-putput 确保输出中没有引号


Try it online!