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仍然有效吗?是的,它可以:)。我将研究注释以避免静态。它只在依赖关系是直接的情况下才有效,而不是通过
集合
、数组或映射
。但我真的建议只声明内部类为静态的——使用非静态内部类的好处很少。