如何从一串逗号分隔值创建一个json数组字符串?

时间:2017-04-06 10:08:40

标签: shell

我有一串逗号分隔的值。

e.g。 - "Paris,Mumbai,London,Tokyo,Boston"

现在我需要的是这样的字符串:

"["Paris","Mumbai","London","Tokyo","Boston"]"

我可以使用IFS创建一个字符串数组。但是无法创建上面提到的json数组 我需要的字符串。请帮忙。

2 个答案:

答案 0 :(得分:0)

"["Paris","Mumbai","London","Tokyo","Boston"]"不是一个结构良好的Json。

这是正确的格式。

["Paris","Mumbai","London","Tokyo","Boston"]

很难看......我知道:

echo "Paris,Mumbai,London,Tokyo,Boston" | perl -p -e "s/,/\",\"/g" | sed 's/^/[\"/g' | sed 's/$/\"]/g'

返回:

["Paris","Mumbai","London","Tokyo","Boston"]

答案 1 :(得分:0)

假设bash 4.4以上,这可能对您有用:

$ INPUT_CITIES="Paris,Mumbai,London,Tokyo,Boston"
$ mapfile -td , cities < <(printf "%s" "$INPUT_CITIES")
$ jo -a "${cities[@]}"
["Paris","Mumbai","London","Tokyo","Boston"]

这假设您已安装https://github.com/jpmens/jo