如何将长的JSON值字符串编写为多行?

31

重要提示:我不是在询问如何将字符串渲染为多行。

我说的是当一个长字符串应该逻辑上在单独一行时,我想把它拆分成多行以便于我的源代码。

简而言之,我想要类似HTML的源行断开规则。

{
    "id": 550,
    "text": "this is long text "
            "very-very-very long text "
            "longer than you can imagine."
}

这段文字应该被渲染为:

this is long text very-very-very long text longer than you can imagine.

JSON被JavaScript引用。

这不是Multiline strings in JSON的重复,因为这个问题与JavaScript密切相关,而那个问题没有明确的被接受的答案。


可能是 JSON 中的多行字符串 的重复问题。 - Francisco Puga
4
@Francisco Puga:只有达到70%的完成度。 - Paul
1
这不是重复的,因为那个问题是关于字符串内部的 \n,而这个问题是关于相同内容在 JSON 源中如何以不同方式(更易读)表示的。 - user202729
4个回答

12
你可以在 JavaScript 中使用多行字符串表示方式:文本链接
JSON.parse('{"a" : "a\
asd"}')

在控制台尝试过,它能够工作。


3

使用数组:

{
    "id": 550,
    "text": ["this is long text ",
            "very-very-very long text ",
            "longer than you can imagine."]
}

假设这个信息存储在 this.messages 中,可在代码中使用。
this.messages.text.join();

0
根据JSONLint.com的说法,以下多行JSON是有效的。因此,简而言之,您可以按Enter键并将其分成不同的行。
{
    "a": 10,
    "b": 12,
    "c": 19
}

编辑:我觉得我误读了你的问题。我认为你不能像下面这样分隔字符串。那是不起作用的。

{
    "a": "abcde
    fg",
    "b": 12,
    "c": 19
}

你能解释一下上下文吗?你使用的是哪种编程语言,为什么需要换行等等? - mjkaufer
你可以使用字符串数组,例如 "a" : ["abcde", "fg"], 然后在你的js代码中,使用join()(对于长文本如"abcdefg")或join("\n")(对于两行文本的文本表示)来处理。 - horiatu

-4

你不能这样做,你需要在一行中写入该值,如果你想在下一行写入,你需要在你的代码中加入 \n


2
问题明确表示应该将其呈现为一行。 - lfk
他明确表示他“不是在询问如何将字符串呈现为多行。”也许你可以举个例子,用JavaScript解决这个问题?就像Pinal的回答那样。 - Sam

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