How important is it to support non-bean style getters/setter method names? If it's not a problem then we can just check for get/set before checking for JsonProperty annotations.
Another thing we could do is check the results of Method#getParameterTypes or Method#getReturnType calls to insure we have something that looks like a getter/setter On Wed, Jul 29, 2009 at 3:47 PM, Cassie <[email protected]> wrote: > That makes sense, but unfortunately, the code is already using it in > deserialization... in BeanJsonConverter, line 89-119ish, the getSetter > method calls getPropertyName which uses the annotation. > > So, can this be safely changed to check for a different annotation name, > like JsonSetterProperty, while leaving the serialization code the same? > Because as it stands, its sorta broken. If no one is supposed to be using > it, then I suppose it shouldn't affect anyone. > > - Cassie > > > On Wed, Jul 29, 2009 at 3:39 PM, Kevin Brown <[email protected]> wrote: > > > JsonProperty was originally only added for serialization (as indicated by > > the documentation). It could certainly be used for deserialization, but > the > > BeanJsonConverter and JsonSerializer both need to be updated accordingly. > > > > On Wed, Jul 29, 2009 at 3:28 PM, Cassie <[email protected]> wrote: > > > > > Hey everyone - > > > > > > I have some legacy objects in my code base that I wanted to convert to > > and > > > from json with the BeanJsonConverter and JsonProperty. Problem is, it > > seems > > > that the same logic/annotation is being used to find getters and > setters > > on > > > my pojos. So when I try to convert my pojo to a string, it ends up > trying > > > to > > > call setters, and not getters (or vice versa). > > > > > > For example, I have a class Post.java with two fields "title" and > "body". > > > Add setters and getters for these fields and things work dandy. > However, > > I > > > need my json to use capital case: "Title" and "Body". To do this I > figure > > I > > > need JsonProperty. So I go and add the JsonProperty("Title") and the > > other > > > annotation to the setters and who hoo I can take my json into a pojo > with > > > capital case. But then - on the way from pojo to json the code grabs > all > > > methods, and if they have a jsonProperty - it puts them in the getter > > map! > > > Unfortunately, this causes an IllegalArgException because of course my > > > setters take params, and the code is expecting them to be getters... > > > > > > So, I'm thinking we either need a JsonGetProperty and JsonSetProperty > > > annotation. Or, the code needs to check that a property exists -and- > that > > > the method starts with "get" or "set" or maybe there is something > > better... > > > > > > Anyway, did I completely screw something up here? Is someone getting > this > > > to > > > work correctly? > > > If not, how should we fix it? > > > Thanks! > > > > > > - Cassie > > > > > >

