无法使用jackson创建内部类列表

时间:2015-07-29 10:17:27

标签: java json jersey jackson

是否无法使用Jackson创建内部类的列表?外部课程Tradables将完美运作。但是内部类Underlyings将无法工作(当然,如果我将Tradables作为内部类,也是如此)。

有没有办法解决这个问题,而不是让属于json对象数组的每个类都在它自己的类中?

JsonProperty是否高于set方法也没关系。任何不属于数组的内部类也可以工作。

private String sector_group;

    @JsonProperty("underlyings")
    private List<Underlyings> listUnderlyings;
    @JsonProperty("tradables")
    private List<Tradables> listTradables;


    public class Underlyings {
        private long instrument_id;
        private String symbol;
        private String isin_code;
        public long getInstrument_id() {
            return instrument_id;
        }
        public void setInstrument_id(long instrument_id) {
            this.instrument_id = instrument_id;
        }
        public String getSymbol() {
            return symbol;
        }
        public void setSymbol(String symbol) {
            this.symbol = symbol;
        }
        public String getIsin_code() {
            return isin_code;
        }
        public void setIsin_code(String isin_code) {
            this.isin_code = isin_code;
        }

    }

映射方法

ObjectMapper mapper = new ObjectMapper();

        try {
            String json = RestLogin.getBaseResource()
                    .path("instruments").path("lookup").path("market_id_identifier").path(market_id + ":" + identifier)
                    .request(RestLogin.getResponsetype()).get(String.class);

            List<Instrument> tmpInstruments = mapper.readValue(json, mapper.getTypeFactory().constructCollectionType(List.class, Instrument.class));

1 个答案:

答案 0 :(得分:1)

Jackson and Inner Classes: yes, you can use, but they must be STATIC inner classes

这是一个片段(但您应该阅读整篇文章以获得更多解释)。

  

如果你不添加静态,那么对于Jackson以及任何其他数据绑定框架(Hibernate,JAXB)来说,生成的类通常是无用的;通常可以序列化,但从未序列化为