Not sure whether this message is posted properly but if so i apologize.
Recently i started using jersey 1.4 specifically for its support of generics
but am facing a problem when the no of elements in the list are 0.
My setup
========
Java(Resource) part
====================
This is how my jersey resource code snippet looks as
public class A<K extends SomeBasePeriod>
{
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Path("periods")
public List<K> getPeriods()
{
List<K> periods=new ArrayList<K>();
if( periodsExist()) // the derived class would decide this..
periods.add(createPeriods()); // this class could go to the derived
class as well.
// assume createPeriods returns "K" objects
return periods;
}
}
JavaScript(client) part
=======================
I have a java script which expects an array .
Problem
=========
The problem that i am having is that when the periods above is an empty
array list , I am getting "null" as the json response in the javascript and
it bombs with "DataError:null"
Tried Stuff
===========
1. Looks like folks have had this issue and have tried different work around
http://markmail.org/search/?q=empty+element+to+json#query:empty%20element%20to%20json+page:1+mid:f2cnoh2o5kyjlmgg+state:results
Did you guys get the resource to spit out { "items":[] } as suggested in the
link?
I tried to use XmlElementWrapper by adding
@XmlElementWrapper(name="periods",required=true,nillable=false) but i am
still getting null .
2. I cant use the other solution as it would force me to change the api
(from List to Response as suggested by someone in the above thread).
So how i can get the resource to spit out [] or atleast if i add the
XmlElementWrapper (is there something that i am missing) to say {
"periods":[] }
Thanx a Lot
Vaidya
--
View this message in context: http://jersey.576304.n2.nabble.com/Problem-with-json-and-jersey-with-generics-of-0-elements-tp5726543p5726543.html
Sent from the Jersey mailing list archive at Nabble.com.