使用 jq 将字符串列表转换为 JSON 数组
Transform a list of strings to JSON array using jq
有一个字符串列表(每行一个),如
str1
str2
...
如何将它们转换成 JSON 列表 ["str1", "str2"]
?
假设在stdin上给出了输入,下面的命令解决了问题:
jq -Rn '[inputs]'
标志 -R
将输入读取为“原始”(即未加引号的字符串)并且 -n
将标准输入移交给 inputs
(用 -s
吞咽不会工作,因为当与 -R
组合时,它读取整个输入一个字符串)。添加 -c
以像问题中那样在一行上打印 JSON。
可以通过添加一个小过滤器来跳过任何空行(如尾随换行符):
jq -Rn '[inputs|select(length>0)]'
如果字符串被其他字符分隔,如,
,则字符串可能被分割为
jq -R 'split(",")'
这也可用于在 \n
上拆分以及解决上述情况,但我的(未经验证的)假设是上述解决方案对于使用其他行终止符的系统更具可移植性。
有一个字符串列表(每行一个),如
str1
str2
...
如何将它们转换成 JSON 列表 ["str1", "str2"]
?
假设在stdin上给出了输入,下面的命令解决了问题:
jq -Rn '[inputs]'
标志 -R
将输入读取为“原始”(即未加引号的字符串)并且 -n
将标准输入移交给 inputs
(用 -s
吞咽不会工作,因为当与 -R
组合时,它读取整个输入一个字符串)。添加 -c
以像问题中那样在一行上打印 JSON。
可以通过添加一个小过滤器来跳过任何空行(如尾随换行符):
jq -Rn '[inputs|select(length>0)]'
如果字符串被其他字符分隔,如,
,则字符串可能被分割为
jq -R 'split(",")'
这也可用于在 \n
上拆分以及解决上述情况,但我的(未经验证的)假设是上述解决方案对于使用其他行终止符的系统更具可移植性。