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

在Android Java中管理从\\到\的转换,java,android,json,serialization,escaping,Java,Android,Json,Serialization,Escaping,我们需要生成如下字符串:“\/Date()\/”。反斜杠在这里不是转义字符。这是一个文本字符串。我们团队中的.NET人员建议使用诸如@“something”之类的语法,但据Java人员说,目前还没有这种语法(Android的最新版本) 有一个编写器,执行的命令是: writer.value("\\/Date(12341234123412)\\/"); 显然,输出会导致以下结果: 。。。“场合”:“\\/日期(1234123412312412)\\\/” 有人建议使用一个反斜杠,但显然这也不起作

我们需要生成如下字符串:
“\/Date()\/”
。反斜杠在这里不是转义字符。这是一个文本字符串。我们团队中的.NET人员建议使用诸如@“something”之类的语法,但据Java人员说,目前还没有这种语法(Android的最新版本)

有一个编写器,执行的命令是:

writer.value("\\/Date(12341234123412)\\/");
显然,输出会导致以下结果:

。。。“场合”:“\\/日期(1234123412312412)\\\/”

有人建议使用一个反斜杠,但显然这也不起作用。这是一个编码的东西吗?Android环境中有没有关于这类事情的一般提示

如果我们对API进行更改,这是一个解决办法,但这意味着服务器端需要更改(变成更糟糕的设计,而不是遵循标准),我需要重写我所提供的服务。当我们从iPhone女孩那里得到代码时,她也需要修改。因此,似乎更明智的做法是在Java方面推动这名男子

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


他把大部分的通讯都接通了。有问题的只是JSON块。

我不能100%确定我是否正确回答了这个问题。 但是,如果您想生成Javascript字符串语法,可能需要在其中包含\。因此,你必须产生两个倒退,为此,你必须写四个倒退(每个倒退一个)

“\\\\\/Date(123412341234412)\\\\\\\\/”
将创建一个字符串
\\\/Date(12341234123412)\\/
,如果您将其写入javascriptsyntax,则它是一个带有例外反斜杠的字符串

也许最好澄清一下:

  • Java语法:
    “\\\\\/Date(123412341234123412)\\\\\/”
  • 内存中的字符串:
    \\/Date(1234123423412)\\/
  • 现在它将被写在一个javascript文件中,并用双引号括起来
  • Javascript语法
    “\\/Date(123412341234123412)\\/”
  • 内存中的字符串
    \/Date(1234123412341232)\/

您所说的“显然,输出导致了这种情况”的确切含义是什么?什么是
writer
?您正在编写的值确实有一个反斜杠,因此听起来可能有其他东西在逃避该值,但如果没有更多信息,我们无法判断…@JonSkeet在这种情况下,通信不是最好的,因此我没有此类信息(不是因为缺乏尝试,呵呵)。我希望有一个好的,标准的方法来做这件事,大多数安道尔开发人员知道,但我不知道。如果没有,那么我将删除这个问题,因为它毫无意义。看起来很奇怪,JSON的序列化在Android上会如此痛苦。。。也许我们需要一个更具协作性的安卓人,呵呵。我想如果没有更多的信息,很难看出一个真正有用的答案和一个适用于不同环境的答案之间的区别。即使只知道这里的
编写器类型也会有所帮助。根据您的更新,这不是正常行为。正如@JonSkeet所说,我们需要知道您使用的是什么
writer
。但是您说:“显然,输出会导致以下情况:…”场景“\/Date(123412341234412)\/”,因此您的结果只有一个“\”。那么它已经开始工作了?我看到你的例子了。这正是我们所期望的。显然它“不起作用”。不知道失败的原因或原因。我没资格问他自己。我只是试着不需要重写我的iPhone代码、WinPhone代码,并且仅仅因为开发人员对字符串感到困惑而在API中更改后端开发人员,呵呵。很抱歉问了这么模糊的问题。我把它写进了免责声明。编辑了问题。这就是我的\\和\,呵呵+不管怎样,我还是要感谢敏锐的眼睛。我会在上面对你的问题进行评论。