Asp.net mvc asp.net mvc控件中的反序列化错误
我正在使用jqGrid,通过使用Asp.net mvc asp.net mvc控件中的反序列化错误,asp.net-mvc,jqgrid,Asp.net Mvc,Jqgrid,我正在使用jqGrid,通过使用getRowData我正在获取jqGrid数据。之后,我应用了JSON.stringify(rowData),最后得到的结果如下: [ { "FIRST_NAME": "Krish", "LAST_NAME": "Patil", "EMPLOYEE_TYPE": "Consultant", "TITLE": "Application Resource", "LOCATION":
getRowData
我正在获取jqGrid数据。之后,我应用了JSON.stringify(rowData)
,最后得到的结果如下:
[
{
"FIRST_NAME": "Krish",
"LAST_NAME": "Patil",
"EMPLOYEE_TYPE": "Consultant",
"TITLE": "Application Resource",
"LOCATION": "USA ",
"CENTER_NAME": "Application Development & Testing",
"EMAIL": "goal@test.com",
"COMMENTS": "testing"
}
]
正如“JavaScript”中所预期的那样,它运行良好。但是,一旦我将此数据发送到控制器并尝试对其进行反序列化,我将收到一个未终止的字符串错误“CENTER\u NAME”:“Application Development..
由于“&”(特殊字符)正在发生。我如何解决此问题,请提供相同的建议
------反序列化代码------------
JavaScriptSerializer ser=newJavaScriptSerializer();
UserData结果=ser.反序列化(UserData);
我建议您验证所使用的userData
的类型。您不会发布更完整的ASP.NET MVC代码。我假设数据(变量userData
)已经通过ASP.NET MVC反序列化为object。JSON规范(请参阅)非常简单。仅”
和\
字符必须转义。还有一些其他字符可以转义(例如/
)。我无法想象JavaScriptSerializer
会出现错误处理&
字符的错误
已更新:代码中一个可能的错误是您使用的UserData
类是什么。也许代码应该是
List result=ser.反序列化(userData);
而不是
UserData结果=ser.反序列化(UserData);
因为您发送了项目数组。以任何方式,程序都会使用代码
使用系统;
使用System.Collections.Generic;
使用System.Web.Script.Serialization;
命名空间反序列化测试{
公共类用户数据{
公共字符串名称;
公共字符串姓氏;
公共字符串EMPLOYEE_TYPE;
公共字符串标题;
公共字符串位置;
公共字符串中心名称;
公共字符串电子邮件;
公共字符串注释;
};
班级计划{
静态空隙干管(){
const string userData=“[{\”名字“:”克里斯“,”姓氏“:”帕蒂尔“,”员工类型“:”顾问“,”头衔“:”应用程序资源“,”位置“:”美国“,”中心“:”应用程序开发与测试“,”电子邮件“:”goal@test.com\“,”注释“:\”测试“}]”;
var ser=新的JavaScriptSerializer();
var result=ser.Deserialize(userData);
WriteLine(“结果[0]。中心名称={0}”,结果[0]。中心名称);
}
}
}
正常工作,无任何异常,并在控制台上显示以下文本:
结果[0]。中心名称=应用程序开发与测试
JavaScriptSerializer ser = new JavaScriptSerializer();
UserData result = ser.Deserialize<UserData>(userData);