Ich benutze Jackson JAXRS JSON-Provider in meiner JEE-Anwendung.Serialize eine LazyDynaList von DynaBean mit Jackson JAXRS-Provider
compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.7.3'
Ich brauche eine List<?>
zu schicken, wo jeder ?
eine DynaBean
Instanz ist.
Ie:
public class SearchEndpoint implements ISearchEndpoint
{
@Inject protected SearchService searchService;
@Override
public Response search(String lqlSentence)
{
return Response.ok().entity(
this.searchService.findXXX()
).build();
}
}
Nachdem gebaut, um die Antwort, jackson serialisiert diesen Kontext als:
[
{
"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
}
}
]
Ich möchte
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;
}
Als ich das List<?>
senden Nur senden:
[
{
"wheels": 4,
"doors": 2
}
]
Irgendwelche Ideen?