相关疑难解决方法(0)

将JSON对象反序列化为List <type>不使用asmx服务

我无法反序列化我的JSON字符串.我有一个person带有公共属性的类,类型为int,first name和last name.我想以JSON格式传递这些对象的数组,并将它们反序列化为一个列表,以便我可以在服务器上循环它们,但ASP.NET说不支持被反序列化为数组.我已经验证了我正在制作的JSON,它是有效的.ASP.NET在反序列化之前需要具有哪些特殊的JSON?有趣的是,如果我将列表<person>对象序列化为JSON,它看起来就像我正在生成的JSON.我必须遗漏一些东西......为了澄清,我正在使用ASP.NET Ajax库进行反序列化.这是我从Web服务中获得的:

{"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;
     }

}  
Run Code Online (Sandbox Code Playgroud)

这是我的JSON字符串:

[{"seq":1,"firstName":"Chris","lastName":"Westbrook"},
{"seq":2,"firstName":"sayyl","lastName":"westbrook"}]  
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码

    [WebMethod]
    public void updatePeople(string json)
    {
        IList<person> people = 
         new JavaScriptSerializer().Deserialize<IList<person>>(json);

        //do stuff... …
Run Code Online (Sandbox Code Playgroud)

asp.net serialization json asp.net-ajax

19
推荐指数
3
解决办法
5万
查看次数

标签 统计

asp.net ×1

asp.net-ajax ×1

json ×1

serialization ×1