json - 发送带有 "\n"换行符的 JSON 字符串

标签 json delphi datasnap line-breaks

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

我正在考虑实现一种自己的转换方法,但这将是最坏的情况,并且我想避免可能的“重新发明轮子”的情况。所以我的问题是,有更好的选择吗?

最佳答案

#10 是换行符或换行 (LF) 字符,在 C 派生语言中表示为 \n,而 #13是一个回车符 (CR),表示为 \r。 Windows 和某些 Internet 协议(protocol)(例如 SMTP 和 HTTP)中的通常顺序是 \r\n

不幸的是,不同的操作系统使用不同的换行符(另请参阅 http://en.wikipedia.org/wiki/Newline )

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

实际上,可能发生的情况是字符串来自数据库或其他源,它们以文字 CR LF 序列存储。 Delphi 只是将它们原样传递。

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

关于json - 发送带有 "\n"换行符的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022780/

相关文章:

python json对象数组不可序列化

python - 为什么我的 json 结果包含两个同名的部分?

delphi - 在 DCOM 中设置远程启动

sql-server - 使用 Datasnap 构建真正的数据库应用程序

arrays - Delphi JSONArray SetJSONValue 访问冲突

java - 从另一个模块读取或加载 JSON 文件

JSON.net SelectToken() 在路径中带有单引号

sqlite - 使用 Delphi 和 Firedac 设置 sqlite 数据库的相对路径

android - 在 VMWare 上编译时出现 Rad XE5 undefined reference 错误 (E2597)

delphi - 加载 midas.dll 时发生 Midas.dll 错误