2

有一个字符串列表(每行一个),比​​如

str1
str2
...

如何将这些转换为 JSON 列表["str1", "str2"]

4

1 回答 1

7

假设输入是在标准输入上给出的,下面的命令解决了这个问题:

jq -Rn '[inputs]'

该标志-R将输入读取为“原始”(即未引用的字符串)并将-n标准输入移交给inputs(啜饮-s不起作用,因为与 结合时-R,它会读取整个输入单个字符串)。添加-c以在一行上打印 JSON,就像问题中一样。

通过添加一个小过滤器可以跳过任何空行(如尾随换行符):

jq -Rn '[inputs|select(length>0)]'

如果字符串被其他字符分隔,例如,,字符串可能会被分割

jq -R 'split(",")'

这也可以用于拆分\n以解决上述情况,但我的(未经验证的)假设是上述解决方案对于使用其他线路终结器的系统更便携。

于 2021-08-20T09:26:17.257 回答