windows phone 中反序列化json时出现的问题

原先的项目是做的WP8版本,后来因为需求要改成WP7,一开始用的Newtonsoft.Json.dll便一直出错。

猜想有可能是WP项目版本不同造成的,就找到了WP7.1专用的,仍然出错:无法使用方法之类的错误。

改变策略,使用C#自带的库,自定义了一个转化类,使用DataContractJsonSerializer,结果报错SecurityException。

找遍了谷歌,结果发现,要序列化的类没有设置成public属性,在WP8中不设置可以转化,但是在之下的版本中都会出错。

不仅是json数据,xml数据也是一样,对于的序列化类必须设置成public。

至此,两种序列化反序列化方法都恢复了正常,去掉DataContractJsonSerializer方法,以前的代码就不用动了。

DataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NET Framework 4在System.Runtime.Serialization中。

原文地址:https://www.cnblogs.com/fengbeihong/p/2957898.html