JSON中允许多行字符串吗?

84 浏览
0 Comments

JSON中允许多行字符串吗?

在JSON中是否可以有多行字符串?

主要是为了视觉上的舒适,所以我想我可以在我的编辑器中打开自动换行,但我有些好奇。

我正在使用JSON格式编写一些数据文件,希望将一些非常长的字符串值拆分到多行上。使用Python的JSON模块,无论我使用\\还是\\n作为转义字符,都会出现大量错误。

admin 更改状态以发布 2023年5月23日
0
0 Comments

不幸的是,许多答案都是在回答如何在字符串数据中加入换行符的问题。而问题是如何通过将字符串值跨越多行代码来使代码看起来更好看。即使有些答案意识到了这一点,它们提供的“解决方案”也假定人们可以随意更改数据表示,但在许多情况下并非如此。

更糟糕的消息是,没有好的答案。

在许多编程语言中,即使它们没有明确支持将字符串跨越多行分隔,你仍然可以使用字符串连接来实现所需的效果;只要编译器不差,这就没问题。

但Json并不是一门编程语言,它只是一种数据表示。你不能告诉它去连接字符串。它的(相当小的)语法也不包括任何用于表示在多行上的字符串的工具。

除非设计一个某种类型的预处理器(对此我本人不想要“发明”自己的语言来解决这个问题),否则这个问题就没有通用的解决方案。如果你可以更改数据格式,那么你就可以替换为字符串数组。否则,这是Json不适合人类阅读性的众多原因之一。

0
0 Comments

JSON 不允许真正的换行符。你需要用\n替换所有的换行符。

例如:

"first line
second line"

可以这样保存:

"第一行\n第二行"

注意:

对于Python, 这应该写成:

"第一行\\n第二行"

其中\\是用来转义反斜杠的,否则python会将\n解释为控制字符"新行"

0