以下
JSON未反序列化.这显然是因为DECIMALS在保存JSON中.我该如何解决?
这个初始JSON来自服务器和IS VALID:
{ "AppropriationAmount": 25000000,"AppropriationHours": 56300,"ArrThreshold": 11,"ClientKey": 24,"Description": 'Find and incarcerate the escaped prisoner',"DirectHours": 50000,"EndDate": '3/31/2011',"EngineeringHours": 4000,"IndirectHours": 2000,"Key": 1589,"Number": '0',"OtherHours": 300,"ProductivityCurveType": 'BurnedEarned',"ProjectManager": 'Doctor Who',"ProjectName": 'Prisoner ZERO',"StartDate": '5/1/2010' }
这个后续的JSON发送到服务器FAILS:
一旦用户编辑了表单,数据就会被客户端序列化并发送回来……然后在尝试反序列化JSON时失败.
{ "AppropriationAmount": 56300.00,"AppropriationHours": 25000000.00,"ArrThreshold": 11.00,"ClientKey":,"DirectHours": 50000.00,"EngineeringHours": 4000.00,"IndirectHours": 2000.00,"OtherHours": 300.00,"StartDate": '5/1/2010' }
try { if (!String.IsNullOrEmpty(this.JSON)) { serializer = new JavaScriptSerializer(); dialog = serializer.Deserialize<ProjectDecorator>(this.JSON); } } catch (Exception ex) { // The message shows here }
抛出的错误看起来像:
{"Invalid JSON primitive: ."}
解决方法
ClientKey不仅没有价值,而且还因为没有将键和值放在双引号(“”)中而冒着JSON有效性的风险.
您的密钥没问题,但字符串值必须用双引号括起来.看看JSON网站,看看哪些是允许的,哪些不是.