【发布时间】:2016-04-25 12:42:47
【问题描述】:
我在我的 JEE 应用程序中使用 Jackson JAXRS JSON 提供程序。
compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.7.3'
我需要发送一个List<?>,其中每个? 是一个DynaBean 实例。
即:
public List<?> findXXX() {
DynaClass dynaClass = new BasicDynaClass("Car", null, new DynaProperty[]{
new DynaProperty("wheels", Long.TYPE),
new DynaProperty("doors", Long.TYPE)}
}
);
try {
DynaBean car = dynaClass.newInstance();
car.set("wheels", 4);
car.set("doors", 2);
}
// ...
List<DynaBean> cars = new LazyDynaList(dynaClass);
cars.add(car);
return cars;
}
当我发送这个List<?>:
public class SearchEndpoint implements ISearchEndpoint
{
@Inject protected SearchService searchService;
@Override
public Response search(String lqlSentence)
{
return Response.ok().entity(
this.searchService.findXXX()
).build();
}
}
在构建响应后,杰克逊将此上下文序列化为:
[
{
"dynaClass":{
"dynaBeanClass":"org.apache.commons.beanutils.LazyDynaBean",
"name":"org.apache.commons.beanutils.LazyDynaClass",
"restricted":false,
"returnNull":false,
"dynaProperties":[
{
"name":"wheels",
"type":"java.lang.Long",
"mapped":false,
"indexed":false
},
{
"name":"doors",
"type":"java.lang.Long",
"mapped":false,
"indexed":false
}
]
},
"map":{
"wheels": 4,
"doors": 2
}
}
]
我只想发送:
[
{
"wheels": 4,
"doors": 2
}
]
有什么想法吗?
【问题讨论】:
标签: java rest jakarta-ee jackson jax-rs