包装的 json 属性的反序列化

Posted

技术标签:

【中文标题】包装的 json 属性的反序列化【英文标题】:Deserialization of wrapped json property 【发布时间】:2018-09-28 11:06:14 【问题描述】:

反序列化此类 json 的最简单方法是什么:


  "xx": 
    ...
   
   "user": 
       
        "name": "john"       
   

到:

class User 
  String name;

使用杰克逊?

【问题讨论】:

【参考方案1】:

如果 Json 有效,那么您只需使用 http://json2csharp.com/ 即可获得所需的结果。

【讨论】:

您也可以使用http://jsonutils.com/ 来获得最终结果。但是您的 json 无效。【参考方案2】:
  json = 
           "xx": 
                   ...,
           "user":
                    "name": "john"       
                   
         
  ObjectMapper mapper = new ObjectMapper();
  JsonNode root = objectMapper.readTree(json);
  String name = root.path("user").get("name").asText();
  user.setName(name);

【讨论】:

以上是关于包装的 json 属性的反序列化的主要内容,如果未能解决你的问题,请参考以下文章

System.Text.Json 反序列化来自 API 调用的嵌套对象 - 数据包装在父 JSON 属性中

JSON中的反序列化和序列化是啥?

Json.net反序列化不反序列化所有属性

Newtonsoft.Json 处理多态类型的反序列化

WCF REST Web 服务 - Json 的反序列化

序列化和反序列化过程中 JSON 属性的不同名称