【问题标题】:Weird JSON output for filepaths文件路径的奇怪 JSON 输出
【发布时间】:2014-04-18 01:52:00
【问题描述】:

我正在使用 JSON::XS,我从一些文件路径的编码中得到了一些奇怪的输出。

要创建输出,我只需对从 perl 调用 dir 命令(使用 ``)获得的一些数据调用 encode_json。我保存在一个数组中。

我最终得到一个如下所示的 JSON 字符串:

 "\"E: \\\\helm\\\\Layman1\\n\""

多余的反斜杠从何而来?

【问题讨论】:

  • 他们来这里是为了制作有效的 json。
  • 请注意,您以 "E: \\helm\\Layman1\LF" 开头(包括引号,LF 表示换行),由于引号、空格、多余的斜杠和换行。 E:\helm\Layman1 将被编码为 "E:\\helm\\Layman1" 而不是 "\"E: \\\\helm\\\\Layman1\\n\""
  • 我不这样做。这就是 perl 对输出的影响。在终端中它看起来不像那样。
  • 嗯? Perl 是向终端输出了"\"E: \\\\helm\\\\Layman1\\n\"" 还是输出了其他东西?你能用实际输出的内容更新你的节点吗?
  • 我没有解码它,所以我不关心这个。我可以这样清理它。出于好奇,你如何控制它?

标签: json perl cpan


【解决方案1】:

\ 字符在 JSON 中具有特殊含义。要将其表示为 JSON 中的数据,它必须表示为转义序列:\\

【讨论】:

    猜你喜欢
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多