【问题标题】:Is it possible to serialize string to json with single slashes?是否可以使用单斜杠将字符串序列化为 json?
【发布时间】:2014-06-26 11:21:56
【问题描述】:

我有以下课程

class MyClass{
    String str = "D:\folder1\folder2\folder3\file.txt"
    ....
}

我将 MyClass 的对象序列化为 json。在 json 中,我看到我的 str 看起来像 D:\\folder1\\folder2\\folder3\\file.txt

是否可以要求GSON不要加双斜线?

【问题讨论】:

  • Are you sure your string is D:(formfeed)older1(formfeed)older2(formfeed)older3(formfeed)ile.txt"? \f 是 Java 和 JSON 中换页符控制字符的转义。
  • "D:\\folder1\\folder2\\folder3\\file.txt".replace("\\\\","\\") 可以解决问题。
  • @gstackoverflow:如果库 not 将斜杠加倍,那将是错误的。你知道如何在 Java 中将斜线加倍吗? JSON 也可以这样工作。

标签: java json serialization gson


【解决方案1】:

JSON specification 状态

所有 Unicode 字符都可以放在引号内, 除了必须转义的字符:引号, reverse solidus,以及控制字符(U+0000 到 U+001F)。

因此,必须对 \ 进行转义才能使 JSON 有效。没有办法解决这个问题。

请注意,您的解析器在读取 JSON 时也会删除第二个 \,因此这应该不是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2014-06-23
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多