有一个字符串列表(每行一个),比如
str1
str2
...
如何将这些转换为 JSON 列表["str1", "str2"]
?
假设输入是在标准输入上给出的,下面的命令解决了这个问题:
jq -Rn '[inputs]'
该标志-R
将输入读取为“原始”(即未引用的字符串)并将-n
标准输入移交给inputs
(啜饮-s
不起作用,因为与 结合时-R
,它会读取整个输入单个字符串)。添加-c
以在一行上打印 JSON,就像问题中一样。
通过添加一个小过滤器可以跳过任何空行(如尾随换行符):
jq -Rn '[inputs|select(length>0)]'
如果字符串被其他字符分隔,例如,
,字符串可能会被分割
jq -R 'split(",")'
这也可以用于拆分\n
以解决上述情况,但我的(未经验证的)假设是上述解决方案对于使用其他线路终结器的系统更便携。