【问题标题】:Alternative to JSON when line breaks are needed?当需要换行时替代 JSON?
【发布时间】:2014-03-14 01:42:40
【问题描述】:

我使用 PHP 制作了一个基本的标签打印 Web 应用程序,我需要一种方法来存储模板。这些由一些小的文本条目和一些数字和布尔值组成。通常我只会使用 JSON,但文本值包含 JSON 无法处理的换行符。 XML 很痛苦,因为我必须逃避 HTML 标记。我可以使用另一种替代格式来存储人类可读的信息吗?

【问题讨论】:

  • 我认为他想用 PHP 进行编码,然后如果我阅读正确,然后发送给客户端。引用的文章描述了如何在 Javascript 中为 JSON 编码字符串。
  • 我实际上只是想将文件保存在服务器上,然后再检索它。没有任何内容被发送给 Javascript 客户端。
  • JSON 不能处理换行符是不对的。您只需将它们转义为\n

标签: php xml json


【解决方案1】:

我假设您要准备数据并将其编码为服务器上的 JSON,然后将其发送到客户端。 This article 很好地解释了如何准备数据以逃避正确的值以在客户端进行评估。

较新版本的 PHP (> 5.2) 具有执行此任务的 json_encode() 函数:

$str_valid=json_encode($str);

此功能有很多选项,请阅读the docs 了解更多信息。

旧版本的 PHP 需要提供这个功能:

/**
 * @param $value
 * @return mixed
 */
function escapeJsonString($value) { # list from www.json.org: (\b backspace, \f formfeed)
    $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
    $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
    $result = str_replace($escapers, $replacements, $value);
    return $result;
}

有趣的是,文章引用了这个StackOverflow post,其中出现了相同的功能。

【讨论】:

    猜你喜欢
    • 2016-05-19
    • 2017-10-27
    • 1970-01-01
    • 2021-11-26
    • 2021-03-13
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    相关资源
    最近更新 更多