-1

我有 json 文件包含多键和值。我希望其中一个值包含换行符。我已经尝试了多个选项,如下所示

{
 "ans": "first line \n second line \n third line",
 "ans1": "first line '\n' second line '\n' third line",
 "ans2": "first line '\\n' second line '\\n' third line",
 "ans3": ["Line one", "line Two", "Line Three"]
}
4

2 回答 2

0

您可以使用模板文字代替字符串引号,只需使用反引号 ( ` ) 代替引号,它是键盘中 TAB 键上方的键。那么如果您使用模板文字编写,则无需使用 \n 或任何内容,只需按 Enter 键,它就会将其视为换行符。

于 2019-06-11T08:24:32.600 回答
0

JSON 字符串不能包含文字(即未转义)返回或换行符。

在 JSON 字符串中指定“换行符”的常用方法是使用两个字符序列\n

因此,在您的示例 JSON 中,.ans 和 .ans2 都包含两个换行符规范,而 .ans2 没有换行符规范,因为三个字符的子序列\\n表示后面跟着字母的文字反斜杠n

如果(例如)您想将 .ans “解码”为“原始”字符串(即,使用文字换行符),您可以使用命令行程序,如下所示:

$ jq -r .ans1 <<< "$json"
first line 
 second line 
 third line
于 2019-06-11T08:49:53.793 回答