多行文件转换为单个JSON字符串

6
我正在尝试将单个文件的所有内容JSON编码为单个JSON字符串,以便在BASH中进行curl请求。该文件是文本文件,因此无需进行base64编码。重要的是,该文件是多行的,并且换行符很重要。我正在尝试编码PEM文件。如果我从文件中删除\n,它会破坏PEM格式。我试图看看是否可以使用jq,但我没有看到任何选项告诉它编码换行符。

这里有什么提示吗?


手动在BASH中制作JSON还是使用Python或Perl更容易呢? - Ben
3
@本,绝对不要使用bash来生成JSON——有很多微妙的陷阱,并且一些在JSON中有效的内容根本无法表示为bash字符串变量(例如NULs——jq将正确地将它们编码为\u0000,而bash甚至无法读取它们,除非通过诡计,例如将NULs表示为数组元素之间的分隔符)。 - Charles Duffy
1个回答

12
您可以使用 jq 命令的 -s 和 -R 选项,例如:
jq -sR .           
a
b

结果:

"a\nb\n"

谢谢。对于 -s 选项的 jq 文档对我来说不是很清楚。这就是我需要的。 - hydrian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接