JSON 是使用 Jersey 的 JAXB 序列化器在 Java 中创建的。 我需要在 .NET 应用程序中反序列化它。 问题出在序列化数组中: 如果数组包含多个项目 JSON 对象是这样的:
{"users":[{"name":"user1", "email":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ccb9bfa9befd8ca9a1ada5a0e2afa3a1" rel="noreferrer noopener nofollow">[email protected]</a>"},{"name":"user2", "email":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="51242234236311343c30383d7f323e3c" rel="noreferrer noopener nofollow">[email protected]</a>"}]}
但是当对象只包含一项时,它会被序列化为一个简单对象
{"users":{"name":"user1", "email":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f782849285c6b7929a969e9bd994989a" rel="noreferrer noopener nofollow">[email protected]</a>"}}
我想将其反序列化为.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 序列化器
最佳答案
在 Json.Net 中,您可以创建一个可以像这样处理 JSON 的自定义转换器。
看看Deserializing JSON when sometimes array and sometimes object具体如何做到这一点。
关于.net - 将 JSON 对象反序列化到 .NET 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9308708/