使用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序列化程序
答案 0 :(得分:2)
在Json.Net中,您可以创建一个可以像这样处理JSON的自定义转换器。
请查看Deserializing JSON when sometimes array and sometimes object如何做到这一点。
答案 1 :(得分:0)
我一直在使用Newtonsoft.JSON用于此目的,它确实管理序列化集合非常好。试试吧。