如何在Bash中将字符串列表转换为JSON字符串数组?

威廉德

如何在Bash中使用包含换行符的字符串列表转换变量,像这样

groups="group_1
group_2
group_3"

到JSON字符串数组:

{
    [ "group_1", "group_2", "group 3" ]
}

jq有可能吗?

如果您的jq有,inputs那么最简单的方法可能是使用它:

jq -ncR '[inputs]' <<< "$groups"
["group1","group2","group3"]

否则,这里有三种选择:

jq -c -n --arg groups "$groups" '$groups | split("\n")' 

echo -n "$groups" | jq -cRs 'split("\n")'

echo "$groups" | jq -R -s -c 'split("\n") | map(select(length>0))'

在任何情况下,都可以轻松地将数组合并到JSON对象中,例如,通过使用 | {groups: .}

如果您确实想产生无效的JSON,请考虑:

printf "%s" "$groups" | jq -Rrsc 'split("\n") | "{ \(.) }"'

输出:

{ ["group_1","group_2","group_3"] }

注意选择(长度> 0)

考虑:

 jq -Rsc 'split("\n")' <<< $'a\nb'
 ["a","b",""]

包含的原因select(length>0)是避免在结尾加上“”。

如果$ groups包含连续的换行符,并且保留空字符串很重要,那么您可能要使用[:-1],例如

jq -cRs 'split("\n")[:-1]' <<< "$groups"
["group1","group2","group3"]

如果您的jq不支持[:-1],请明确指定0:[0:-1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在golang中将字符串转换为json?

如何在Go中将字符串转换为JSON?

如何在Golang中将字符串转换为数组?

如何在Bash中将字符串转换为小写?

如何在Bash中将字符串转换为单个字符的数组?

如何在F#中将字符串列表转换为字符串列表

如何在angularJS中将字符串转换为数组

如何在Laravel中将数组转换为字符串?

如何在Lisp中将列表转换为字符串

在Python中将JSON字符串列表转换为JSON数组

如何在Rails中将数组转换为字符串

如何在字符串列表的字符串数组中添加字符串数组?

如何在Bash中将字符串转换为整数?

如何在颤振中将字符串列表转换为字符串?

如何在bash中将json字符串转换为单个字符数组?

如何在Terraform中将列表转换为字符串?

如何在Angular中将字符串转换为json?

如何在JavaScript中将字符串转换为数组

如何在MongoDB中将数组转换为字符串

如何在Java中将列表字符串列表转换为列表整数列表

如何在bash中将字符串转换为int?

如何在Unity(C#)中将字符串列表转换为单个字符串

如何在Ruby中将字符串转换为数组

如何在 Ballerina 中将 json 转换为字符串?

如何在 JavaScript 中将字符串转换为数组?

如何在NodeJs中将字符串转换为数组

如何在hive中将字符串数组转换为json字符串?

如何在python中将字符串列表转换为具有正确格式的json?

如何在laravel中将数组转换为字符串