【问题标题】:JavaScriptSerializer Adding a Question Mark to a PropertyJavaScriptSerializer 向属性添加问号
【发布时间】:2016-06-27 09:00:27
【问题描述】:

我遇到了一个奇怪的问题,环顾四周,我似乎找不到任何关于发生了什么的解释。

我正在尝试在 C# 中将一些数据序列化为 JSON,如下所示:

var transactionJson = new JavaScriptSerializer().Serialize(remoteData);

大多数情况下这是可行的,但偶尔会有一个问号字符注入到生成的 JSON 中。

这里是生成的相应 JSON(注意添加到 ProvinceCode 值中的前导“?”):

"Addresses": [{
  "City": "Edmonton",
  "Confidential": null,
  "Country": null,
  "CountryCode": "CA",
  "Line1": "123 Test Dr.",
  "Line2": null,
  "Line3": null,
  "Line4": null,
  "PostalCode": "T5K1P4",
  "Province": null,
  "ProvinceCode": "?ALBERTA",
  "Type": null,
  "TypeCode": "H"
}],

有谁知道为什么将额外的字符注入到值中?查看原始数据,我在该字段中看不到任何特殊字符,如果我在调试模式下手动重新输入值,一切正常。

【问题讨论】:

  • 可能在字符串的开头有一个不可见的字符(对于调试器不可见但对文本编辑器可见,但字体未知,因此问号)。也许您应该使用ToCharArray 在调试器中显式检查字符串。

标签: c# json javascriptserializer


【解决方案1】:

我查看了 char 数组,似乎该字符串中有一个 Byte Order Mark 字符。

该字符被序列化为“?”。

感谢@poke 提供的故障排除建议。

【讨论】:

  • 很高兴我能帮上忙 :)
猜你喜欢
  • 2012-03-11
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
相关资源
最近更新 更多