使用bash将内容文件转换为单个json字符串值

时间:2018-04-12 09:54:38

标签: json bash escaping

我想读取一个文件并将整个内容放入一个被转义为在json对象中使用的字符串。

我想在命令行/终端(linux)上执行此操作。

有什么想法吗? THX提前!

2 个答案:

答案 0 :(得分:5)

对于对我的解决方案感兴趣的所有人(阅读&#34;更新1&#34;): <击>

<击>
jq  -n                                \
   --arg content "$(cat theFile.txt)" \
   '{ theContent : $content }'        \
|                                     \
jq '.theContent'

更新0

Jeff Mercado为第一部分提供了更紧凑的解决方案 - 所以我在我的代码中对其进行了如下调整:

jq -Rs                  \
   '{ theContent: . }'  \
   theFile.txt          \
|                       \
jq '.theContent'

<击>

更新1

现在Jeff Mercado为我正在寻找的内容提供了更紧凑的解决方案:

jq -Rs '.' theFile.txt

THX用于阅读; - )

答案 1 :(得分:2)

更直接的方法是使用原始输入(-R)和slurp(-s)参数将整个输入作为单个字符串读取。然后将该输入存储在适当的属性中。您不需要将其作为单独的参数传递。

$ jq -Rs '{ theContent: . }' theFile.txt