发送带有“的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时代;-)