.net - 将 JSON 对象反序列化到 .NET 列表中

标签 .net json web-services serialization jaxb

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/

相关文章:

java - Spring-ws -来自tomcat 6的问题请求Web服务

c# - STM.NET 与 Clojure STM

c# - 与 C# 相比,简单循环上的 F# 代码性能较差 - 为什么?

c# - Thread.Sleep 的精确替代

c# - 当查询字符串中有 '%' 符号时收到 500 内部服务器错误

web-services - 为什么我的 Coldfusion Soap Web 服务的生产速度比开发速度慢 10 倍?

json - swift 中 do catch 语句错误

java - 将JsonObject从Google转换为JsonNode再转换为Jackson,然后将多个JsonNode作为数组传递给Web服务

mysql - 将JSON字段转换为mysql中的键值对

web-services - SOAP 主体的 XML 签名