asp.net – 将JSON对象反序列化为列表不能使用asmx服务
|
我有麻烦反序列化我的JSON字符串。我有一个类型的人类,具有公共属性,序列号为int,名字和姓氏。我想以JSON格式传递这些对象的数组,并将它们反序列化为一个列表,所以我可以在服务器上循环遍历它们,但是ASP.NET表示不支持将它们反序列化为数组。我已经验证了我生产的JSON,它是有效的。 ASP.NET在反序列化之前需要具备哪些特殊的JSON?有趣的是如果我序列化一个列表< person>反对JSON它看起来完全像我生产的JSON。我一定是缺少一些东西…要澄清,我正在使用ASP.NET Ajax库来反序列化。这是我从网络服务中得到的:
实际上不幸的是,这似乎与反序列化无关,看来你不能将一组JSON对象传递给asmx Web服务。我对么?如果不能这样做,可以将JSON对象的集合传递给Web服务,并使用ASP.NET和C#在服务器上进行处理? 更新: 好的,这是我的代码。这是人类: public class person
{
public person()
{
//
// TODO: Add constructor logic here
//
}
public int seq
{
get;
set;
}
public string firstName
{
get;
set;
}
public string lastName
{
get;
set;
}
}
这里是我的JSON字符串: [{"seq":1,"firstName":"Chris","lastName":"Westbrook"},{"seq":2,"firstName":"sayyl","lastName":"westbrook"}]
这里是我正在使用的代码 [WebMethod]
public void updatePeople(string json)
{
IList<person> people =
new JavaScriptSerializer().Deserialize<IList<person>>(json);
//do stuff...
}
解决方法我想到了。我没有将JSON包装在像ASP.NET Ajax要求的对象中。对于此问题的未来观众,所有JSON对象必须在发送到Web服务之前用主对象包装。最简单的方法是在JavaScript中创建对象,并使用像json2.js这样的对象进行字符串化。此外,如果使用asmx Web服务,对象必须具有__type属性才能正确序列化。一个例子可能是:var person=new object; person.firstName="chris"; person.lastName="Westbrook"; person.seq=-1; var data=new object; data.p=person; JSON.stringify(data); 这将创建一个名为p的对象,该对象将包装一个person对象。然后可以将其链接到Web服务中的参数p。类型人物的列表是类似的,接受使用一组人,而不仅仅是一个对象。我希望这有助于某人。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – ASP.NET MVC 3未找到视图“错误”或其主文
- asp.net-mvc – 如何通过MVC Azure AD身份验证从AD获取角色
- asp.net-mvc – ASP.NET MVC快速启动 – 一站式教程?
- asp.net – 什么项目层应该屏幕DTO的生活?
- ASP.net HttpRequest上的静态HttpClient线程安全
- asp.net-mvc – Stack Overflow问题路由
- 什么OverrideAuthenticationAttribute是为什么?
- ASP.NET会话ID在浏览器选项卡之间共享
- 使用asp.net控件创建无序列表?
- asp.net-core – 如何在Asp.net Core中检测会话超时?
- asp-classic – 超过响应缓冲区限制
- asp.net-mvc-3 – MVC3比MVC2有什么优势?
- asp.net-web-api – Web Api gzip压缩
- asp.net – 如何在没有查找AspNetUserRoles表的情
- asp.net-core – 为Microsoft.CodeAnalysis.Comm
- asp.net – 实体框架:Singletonish ObjectConte
- asp.net – 如何在SqlDataSource中为存储过程指定
- 防止在ASP.NET 4.0中上传大文件
- asp.net-mvc – 如何从ASP.Net MVC列表页面使用j
- asp.net-mvc – ASP.NET MVC3 IIS无法获取加载样
