Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用jackson创建内部类的列表_Java_Json_Jersey_Jackson - Fatal编程技术网

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

Java 无法使用jackson创建内部类的列表,java,json,jersey,jackson,Java,Json,Jersey,Jackson,是否无法使用Jackson创建具有内部类的列表?外部类Tradables将完美工作。但是内部类的基础将不起作用(当然,如果我将Tradables设置为内部类,情况也是如此) 有没有一种方法可以在不让属于json对象数组的每个类都在自己的类中的情况下解决这个问题 另外,如果JsonProperty在set方法之上,这也无关紧要。任何不属于数组的内部类也可以工作 private String sector_group; @JsonProperty("underlyings") pr

是否无法使用
Jackson
创建具有内部类的列表?外部类
Tradables
将完美工作。但是内部类的基础将不起作用(当然,如果我将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;
        }

    }
private String sector\u group;
@JsonProperty(“基础”)
私人名单;
@JsonProperty(“可交易”)
可交易私人清单;
公共阶级基础{
私人长仪器id;
私有字符串符号;
私有字符串isin_代码;
公共长getInstrument_id(){
返回仪表标识;
}
公共无效设置仪器id(长仪器id){
this.instrument\u id=仪器\u id;
}
公共字符串getSymbol(){
返回符号;
}
公共无效集合符号(字符串符号){
这个符号=符号;
}
公共字符串getIsin_代码(){
返回isin_代码;
}
公共无效设置码(字符串码){
this.isin_代码=isin_代码;
}
}
映射方法

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));
ObjectMapper mapper=new ObjectMapper();
试一试{
字符串json=RestLogin.getBaseResource()
.path(“仪器”).path(“查找”).path(“市场id\U标识符”).path(市场id+:“+标识符)
.request(RestLogin.getResponsetype()).get(String.class);
List tmpInstruments=mapper.readValue(json,mapper.getTypeFactory().ConstructionCollectionType(List.class,Instrument.class));

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

如果不添加静态,则生成的类通常对Jackson以及任何其他数据绑定框架(Hibernate、JAXB)都是无用的;通常可以序列化,但决不能序列化到


非常旧的文章。如果它们不是列表的一部分,我可以使用它们,而不会是静态的。这对Jackson 2.6仍然有效吗?是的,它可以:)。我将研究注释以避免静态。它只在依赖关系是直接的情况下才有效,而不是通过
集合
、数组或
映射
。但我真的建议只声明内部类为静态的——使用非静态内部类的好处很少。