【发布时间】:2010-09-29 00:21:27
【问题描述】:
我在反序列化我的 JSON 字符串时遇到问题。我有一个 person 类型的类,它具有 int 类型的序列号、名字和姓氏的公共属性。我想以 JSON 格式传递这些对象的数组并将它们反序列化为列表,以便我可以在服务器上循环它们,但 ASP.NET 表示不支持将它们反序列化为数组。我已经验证了我正在生成的 JSON,它是有效的。 ASP.NET 在反序列化之前需要拥有的 JSON 有什么特别之处吗?有趣的是,如果我将 list
{"Message":"Type \u0027System.Collections.Generic.IDictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]\u0027 不支持数组的反序列化。"
实际上不幸的是,这似乎与反序列化没有任何关系,您似乎无法将 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,当使用链接到 json.org 的 json 验证器进行测试时,它说它是有效的。
标签: asp.net json asp.net-ajax serialization