JavaScriptSerializer向属性添加问号

时间:2016-03-11 23:23:48

标签: c# json javascriptserializer

我遇到了一个奇怪的问题,从环顾四周来看,我似乎找不到任何有关正在发生的事情的解释。

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

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

大部分时间都有效,但偶尔会有一个问号字符注入到生成的JSON中。

Here's a screenshot of a portion of the data going in

以下是生成的相应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"
}],

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

1 个答案:

答案 0 :(得分:0)

我看了一下char数组,看来该字符串中有一个Byte Order Mark字符。

该char被序列化为“?”。

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