쉼표로 구분된 문자열을 json 배열로 변환

쉼표로 구분된 문자열을 json 배열로 변환

다음 문자열이 있습니다bash

"3.8,3.9,3.10"

shell 을 사용하여 이것을 배열로 변환하는 방법이 있습니까 json?

["3.8", "3.9", "3.10"]

답변1

문자열(큰따옴표 포함)은 올바른 형식의 JSON 문자열로 나타나므로 이를 JSON 프로세서에 JSON으로 전달하고 jq쉼표로 나눌 수 있습니다.

$ echo '"3.8,3.9,3.10"' | jq 'split(",")'
[
  "3.8",
  "3.9",
  "3.10"
]

"컴팩트한 출력"을 얻으려면 jqwith를 사용하십시오 .-c

$ echo '"3.8,3.9,3.10"' | jq -c 'split(",")'
["3.8","3.9","3.10"]

명령줄에서 이를 내부 jq변수에 할당한 다음 해당 변수의 값을 분할합니다.

$ jq -c -n --argjson str '"3.8,3.9,3.10"' '$str|split(",")'
["3.8","3.9","3.10"]

관련 정보