0
JEEアプリケーションでJackson JAXRS JSONプロバイダを使用しています。Jackson JAXRSプロバイダを使用してDynaBeanのLazyDynaListをシリアライズ
compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.7.3'
私は、各?
がDynaBean
インスタンスであるList<?>
を送信する必要があります。
すなわち:
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<?>
送信する場合:私はしたい
[
{
"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
}
}
]
:応答を建てた後
public class SearchEndpoint implements ISearchEndpoint
{
@Inject protected SearchService searchService;
@Override
public Response search(String lqlSentence)
{
return Response.ok().entity(
this.searchService.findXXX()
).build();
}
}
を通り、ジャクソンは、このコンテキストをシリアライズ送信専用:
[
{
"wheels": 4,
"doors": 2
}
]
アイデア?