在 Android Java 中管理从 \\ 到 \ 的转换

Managing conversion from \\ to \ in Android Java

我们需要生成这样的字符串:"\/Date()\/"。反斜杠在这里不是转义字符。这是一个文字字符串。我们团队中的 .NET 人员建议使用像 @"something" 这样的语法,但根据 Java 人员的说法,还没有这样的东西可用([=32 的最新版本=]).

有写手执行的命令是:

writer.value("\/Date(12341234123412)\/");

显然,输出导致了这个:

... "Occasion":"\/Date(12341234123412)\/" ...

有人建议使用单个反斜杠,但显然这也行不通。它是编码的东西吗? Android 环境中是否有针对此类事情的一般提示?

如果我们对 API 进行更改,则有一个解决方法,但这意味着服务器端需要更改(更糟糕的设计,不遵循标准)并且我需要重写我正在服务的内容。当我们从 iPhone 女孩那里得到代码时,她也需要更改代码。所以在 Java 方面给这个家伙一个推动似乎更明智。

显然 Android 上 JSON 的对象没有默认的序列化程序,设计一个需要很多工作。我发现后者非常正确,但前者出乎意料。不过,这只是一个 POC,所以现在可以对字符串进行硬编码。

他得到了大部分的交流运行。只是 JSON 块有问题。

我不能 100% 确定我是否答对了问题。 但是如果你想生成一个 Javascript-String-Syntax,你可能希望在其中包含 \。所以你必须产生两个反斜杠,为此,你必须写四个(一个来转义)。

"\\/Date(12341234123412)\\/" 将创建一个字符串 \/Date(12341234123412)\/,如果您将其写入 javascriptsyntax,则它因此是一个带有预期反斜杠的字符串。

也许更清楚:

  • Java 语法:"\\/Date(12341234123412)\\/"
  • 内存中的字符串:\/Date(12341234123412)\/
  • 现在写成javascript-file,用双引号括起来
  • Java脚本语法"\/Date(12341234123412)\/"
  • 内存中的字符串\/Date(12341234123412)\/