Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发送带有“的JSON字符串”\";换行符_Json_Delphi_Datasnap_Line Breaks - Fatal编程技术网

发送带有“的JSON字符串”\";换行符

发送带有“的JSON字符串”\";换行符,json,delphi,datasnap,line-breaks,Json,Delphi,Datasnap,Line Breaks,我有一个Delphi XE2Datasnap服务器,我需要从数据库接收一个带换行符的字符串,并将其作为JSON字符串重新发送到客户端应用程序。问题是我收到的字符串带有\10\13换行符,我的客户要求\n换行符。这似乎是JSON发送换行符的默认方式,我希望转换是自动的,但似乎不是这样 我正在考虑实现一种自己的转换方法,但这是最坏的情况,我希望避免可能的“重新发明轮子”情况。所以我的问题是,有更好的选择吗?#10是换行符或换行符(LF),在c派生语言中表示为\n,\13是表示为\r的回车符(CR)。

我有一个
Delphi XE2
Datasnap服务器,我需要从数据库接收一个带换行符的字符串,并将其作为
JSON字符串
重新发送到客户端应用程序。问题是我收到的字符串带有
\10\13
换行符,我的客户要求
\n
换行符。这似乎是JSON发送换行符的默认方式,我希望转换是自动的,但似乎不是这样

我正在考虑实现一种自己的转换方法,但这是最坏的情况,我希望避免可能的“重新发明轮子”情况。所以我的问题是,有更好的选择吗?
#10
是换行符或换行符(LF),在c派生语言中表示为
\n
\13
是表示为
\r
的回车符(CR)。Windows和某些internet协议(例如SMTP和HTTP)中的通常顺序是
\r\n

不幸的是,不同的操作系统使用不同的换行符(另请参见)

Delphi(或您使用的JSON框架)无法猜测您的换行预期。恐怕您必须编写额外的代码以使换行符适合您的客户

实际上,可能发生的情况是字符串来自数据库或其他源,在那里它们与文本CR LF序列一起存储。德尔福只是把它们原封不动地传下去


在做任何工作之前,请确保客户机真正关心。

您指的是字符串值还是JSON本身的格式?你能举个例子吗?字符串值。我应该注意,JSON字符串在发送之前会被转换成字符串。为什么需要转换它们?客户机应用程序是什么?它为什么关心?如果您真的“接收带有#10#13的字符串”,那么自动转换不起作用是正常的。Windows上的CR代码是“#13#10”,“#10#13是回车”。不,它是#13#10“\n\r”也不正确。它是\r\n。看你的答案张贴的链接。没有#13为回车,#10为换行。想想你的打字机/电传打字机要做什么:把机架放回左边,然后把纸向前送一行。是的,我来自DOS时代;-)