将JSON对象反序列化为.NET列表

时间:2012-02-16 09:35:06

标签: .net json web-services serialization jaxb

使用Jersey的JAXB序列化程序在Java中创建JSON。 我需要在.NET应用程序中反序列化它。 问题出在序列化数组中: 如果数组包含多个项目,JSON对象就是这样:

{"users":[{"name":"user1", "email":"user1@email.com"},{"name":"user2", "email":"user2@email.com"}]}

但是当object只包含一个项目时,它被序列化为一个简单的对象

{"users":{"name":"user1", "email":"user1@email.com"}}

我想将它反序列化为.NET对象。

public class UserList{
   public List<User> users {get;set;}
}
public class User{
   public string name {get;set;}
   public string email {get;set;}
}

标准.NET反序列化程序无法理解第二个情况。我尝试了JSON.NET默认的反序列化器,但它抛出了异常。也许它需要正确配置?.. 你能否提出一些如何处理第一和第二种情况的建议。 附:我无法访问Java序列化程序

2 个答案:

答案 0 :(得分:2)

在Json.Net中,您可以创建一个可以像这样处理JSON的自定义转换器。

请查看Deserializing JSON when sometimes array and sometimes object如何做到这一点。

答案 1 :(得分:0)

我一直在使用Newtonsoft.JSON用于此目的,它确实管理序列化集合非常好。试试吧。