others - json中多行字符串

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

时间:

JSON不允许换行符,你需要将所有换行符替换为n


{
"modify_head": [

"<script type='text/javascript'>",
"<!--",
" function drawSomeText(id) {",
" var pjs = Processing.getInstanceById(id);",
" var text = document.getElementById('inputtext').value;",
" pjs.drawText(text);}",
"-->",
"</script>"

 ],

"modify_body": [

"<input type='text' id='inputtext'></input>",
"<button onclick=drawSomeText('ExampleCanvas')></button>"

 ],
}

这对我来说看起来很整洁,我必须到处使用双引号,另外我使用YAML,但是这有其他缺陷,而且不是native支持,经过分析,我只使用myData.modify_head.join('n')

JSON语法 规范,生成的JSON格式可以采用以下值:

  • 任何Unicode字符-或控制字符
  • "
  • /
  • b
  • f
  • n
  • r
  • t
  • u 四位16进制数字

换行符是"控制字符",因此,你可能在字符串中没有文本换行符,但是,你可以使用n和r组合来对它进行编码。

这是一个很老的问题,但是我在搜索中出现了这个问题,我认为我知道你的问题。

JSON在其数据中不允许"真实"换行; 它只能转义换行符,从@YOU中查看答案,上,根据这个问题,看起来你试图在python中以两种方式转换换行符: 使用行继续字符(",或者使用"n"作为转义符。

但是要记住:如果在python中使用字符串,特殊转义字符("","n")被转换为真正的控制字符,将用表示换行符的ASCII控件字符替换"n",这正是在JSON中非法的字符,(对于行延续字符,它只是取换行。)

所以你需要做的是阻止python转义字符,你可以使用原始字符串(将r放在字符串前面,如r"abcndef",或者在新行前面包含一个额外的斜杠("abcndef")来完成这个操作。

以上两个将不用真正的换行字符替换"n",而是将"n"作为两个字符来解释为换行符。

它很简单,例如字符串

 
line one
line two

 

所以在json中你可以


{
"singleline" :"line onernline two"
}

使用正规表达式将所有的rn替换为n 。

这在Scala中为我工作。


val newstr = str.replace("rn","n")

将多行文本放在txt文件上,然后


var str = {
 text: cat('path_to_file/text.txt')
}

(在mongoDB上工作)

JSON不允许断行。

你最好的办法是使用一个能帮你换行的IDE 。

你可以尝试在句子之间放置 <div></div>

...