【问题标题】:object structure mismatch issue using json fromJson method使用 json fromJson 方法的对象结构不匹配问题
【发布时间】:2016-12-01 13:43:36
【问题描述】:

所以这是我在将复杂的 json 转换为 java 时面临的问题
目的。

传入的json是这样的:

{
    "view": {       
        "unit": {
            "sc": {
                "private": 6,
                "public": 6
            },
        "step": "PREPARE",
        "id": 3037,
    .....
}  

请注意,sc 具有 java 关键字 private 和 public 作为其字段。
在客户端,我有以下代码来使用这个 json。

String obj = restTemplate.postForObject(url, entity, String.class);    
JsonObject jsonObj = new JsonParser().parse(obj).getAsJsonObject();    
T objFinal = buildGson(dateFormat).fromJson(jsonObj, PrepareStateObject.class);

PrepareStateObject 与对应的 json 相同,唯一的区别是 sc 对象。

public class sc implements java.io.Serializable {
    private static final long serialVersionUID = -952803010396503926L;
    private static final Logger log = LoggerFactory.getLogger(sc.class);       
    private Integer _public;    
    private Integer _private;
    //....
}    

当我检查 jsonObj 时,我可以看到带有 sc 对象的整个 json。 然而,正如预期的那样,由于字段名称不匹配,fromJson 方法无法填充 sc 对象。
如何在不使用像 jackson 这样的映射器的情况下实现这一目标?

【问题讨论】:

  • 你能在这里分享堆栈跟踪吗?
  • 找到解决方案...

标签: java json spring-boot jackson gson


【解决方案1】:

https://shekhargulati.com/2015/09/14/gson-tip-jsonproperty-equivalent/

我使用 Gson 解析器的 @SerializedName 注释在那里寻找的内容相当于杰克逊中的 JsonProperty。

【讨论】:

    猜你喜欢
    • 2020-06-22
    • 2015-01-17
    • 2011-10-15
    • 2017-06-08
    • 2023-03-03
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多