【问题标题】:Multiline File in to single JSON string多行文件到单个 JSON 字符串
【发布时间】:2017-11-30 16:06:24
【问题描述】:

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

这里有人有什么提示吗?

【问题讨论】:

  • 在 BASH 中手动制作 JSON 或者使用 Python 或 Perl 会更容易吗?
  • @Ben, ...不,绝对不会更容易使用 bash 生成 JSON —— 很多微妙的警告,以及一些在 JSON 中有效的内容根本无法在 bash 字符串变量中表示(例如,NUL ——jq 会将它们正确编码为 \u0000,而 bash 甚至无法读取它们,除非通过诡计,例如将 NUL 表示为数组中元素之间的分隔符)。

标签: json bash jq


【解决方案1】:

您可以将 jq 与 -s 和 -R 选项一起使用,例如

jq -sR .           
a
b

结果:

"a\nb\n"

【讨论】:

  • 谢谢。 -s 选项的 jq 文档对我来说不是很清楚。这正是我所需要的。
猜你喜欢
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多