剛需,jackjsonjson轉化內部類問題


1.今天在編寫jackjson將json轉換成object的時候,突然報錯:

nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.ferelife.emms.vo.price.AuditCommitVo$PriceNode: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)

一臉懵逼啊,不是有構造方法嘛,為啥又說我沒有構造方法嘛,這不是在逗我嗎?

一陣狂查后發現原來這貨在進行綁定的時候是采用的靜態類調用方式創建內部類實例即 Demo.new InnerDemo()創建。

則將內部類聲明為public static class 類型即可解決

看下面一個例子

package com.ferelife.emms.vo.price;

import com.ferelife.emms.vo.audit.AuditVo;

import java.util.List;

/**
 * @author lonecloud
 * @version v1.0
 * @date 上午11:02 2018/3/3
 */
public class AuditCommitVo extends AuditVo {


    private List<PriceNode> detail;

    public List<PriceNode> getDetail() {
        return detail;
    }

    public void setDetail(List<PriceNode> detail) {
        this.detail = detail;
    }


    public static class PriceNode {

        public PriceNode() {
        }

        private String commodityId;

        private int status;

        public String getCommodityId() {
            return commodityId;
        }

        public void setCommodityId(String commodityId) {
            this.commodityId = commodityId;
        }

        public int getStatus() {
            return status;
        }

        public void setStatus(int status) {
            this.status = status;
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM