将逗号分隔的字符串转换为 json 数组

pka*_*mol 4 shell bash array string json

我有以下字符串bash

"3.8,3.9,3.10"
Run Code Online (Sandbox Code Playgroud)

有没有办法使用shell将其转换为json数组,即

["3.8", "3.9", "3.10"]
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 7

由于该字符串(包括其双引号)似乎是格式正确的 JSON 字符串,因此我们可以将其作为 JSON 传递给 JSON 处理器jq,并将其拆分为逗号:

$ echo '"3.8,3.9,3.10"' | jq 'split(",")'
[
  "3.8",
  "3.9",
  "3.10"
]
Run Code Online (Sandbox Code Playgroud)

使用jqwith-c获得“紧凑输出”:

$ echo '"3.8,3.9,3.10"' | jq -c 'split(",")'
["3.8","3.9","3.10"]
Run Code Online (Sandbox Code Playgroud)

jq在命令行上将其赋予内部变量,然后拆分该变量的值:

$ jq -c -n --argjson str '"3.8,3.9,3.10"' '$str|split(",")'
["3.8","3.9","3.10"]
Run Code Online (Sandbox Code Playgroud)