以下JSON未反序列化。这显然是因为DECIMALS在保存JSON中。我该如何解决这个问题?
这个初始JSON来自服务器并且是有效的:
{
"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": ,
"Description": 'Find and incarcerate the escaped prisoner',
"DirectHours": 50000.00,
"EndDate": '3/31/2011',
"EngineeringHours": 4000.00,
"IndirectHours": 2000.00,
"Key": 1589,
"Number": '0',
"OtherHours": 300.00,
"ProductivityCurveType": 'BurnedEarned',
"ProjectManager": 'Doctor Who',
"ProjectName": 'Prisoner ZERO',
"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: ."}
答案 0 :(得分:11)
“ClientKey”:,没有值
答案 1 :(得分:11)
ClientKey
不仅没有值,而且还因为没有将键和值放在双引号(""
)中而冒着JSON有效性的风险。
您的密钥没问题,但string
值必须用双引号括起来。看一下JSON网站,看看哪些是允许的,哪些不是。