【问题标题】:Json.NET serialization strange behaviourJson.NET 序列化奇怪的行为
【发布时间】:2011-10-25 21:02:38
【问题描述】:

我有字符串 "acount":"3Jmz2251olK5r\/9uOUAWhrp0="

当我使用 JsonConvert.DeserializeObject("acount":"3Jmz2251oO+llK5r\/9uOUAWhrp0=");

字符\从帐户字符串中消失了。

你认识某人,我该如何解决?

我正在使用 .NET 2.0。

谢谢 托马斯

【问题讨论】:

  • 我在您的帐户中看不到任何反斜杠。你的意思是正斜杠吗?

标签: .net json


【解决方案1】:

C# 中的反斜杠转义下一个字符。要将真正的反斜杠放入字符串中,您需要使用双反斜杠:

"3Jmz2251oO+llK5r\\/9uOUAWhrp0="

或者您可以使用文字字符串:

@"3Jmz2251oO+llK5r\/9uOUAWhrp0="

【讨论】:

  • 其实有一个双反斜杠。帐户字符串来自另一个应用程序,经过 Json.NET 反序列化后 \\ 消失了。谢谢。
  • @Tomas:反斜杠也用作 javascript 中的转义字符,因此如果原始字符串有两个反斜杠,那么当您反序列化 JSON 时,结果字符串只有一个反斜杠是正确的。
  • 我正在使用 Json.net 开源库,因为我的项目在 .Net 2.0 上运行,并且该库删除了反序列化的对象属性中的反斜杠。谢谢
  • @Tomas:是的,这是正确的行为。 JSON 中的反斜杠是它后面的字符的转义字符。当它被反序列化时,它应该被删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多