This article points out exactly the fact, that the usage of 
BeanSerializerModifier makes in unnecessary to use the annotation!
So I would happily contribute to make the @JsonSerialize smarter. :)

BR, Zsolt

2017. március 21., kedd 8:25:51 UTC+1 időpontban Zsolt Balanyi a következőt 
írta:
>
> Hi!
>
> This is exactly what I was wondering... if there is a way to automate the 
> default serializer injection, when the custom serializer gets detected.
> I am also willing to contribute to the code, if I am provided some 
> guidance.
>
> BR, Zsolt
>
> 2017. március 20., hétfő 21:24:27 UTC+1 időpontban Tatu Saloranta a 
> következőt írta:
>>
>> Good luck! That approach is used quite a lot so it should work fine. 
>> Note, too, that it may be combined with ContextualSerializer if you do 
>> need to access annotations. 
>> In fact you can use `createContextual()` sometimes to simply decide if 
>> override is needed at all; if not, return default serializer from that 
>> method and you are good to go (but if so, remember to delegate call). 
>>
>> It would be great to find better ways to allow such "partial" 
>> overrides, in a more convenient way. 
>> But until then, Bean(De)SerializerModifier is the way to go. 
>>
>> -+ Tatu +- 
>>
>>
>> On Mon, Mar 20, 2017 at 1:08 PM, Zsolt Balanyi <zsolt....@gmail.com> 
>> wrote: 
>> > Hi! 
>> > 
>> > OK, thanks, then I'll go that way! 
>> > 
>> > BR, Zsolt 
>> > 
>> > 2017. március 20., hétfő 20:13:25 UTC+1 időpontban Tatu Saloranta a 
>> > következőt írta: 
>> >> 
>> >> This can not be done from annotation-based serializer: it will 
>> >> override default logic. 
>> >> The only way to access what would otherwise be created/used as the 
>> >> standard serializer is to register `BeanSerializerModifier`, and 
>> >> override handling of `modifySerializer`. 
>> >> 
>> >> -+ Tatu +- 
>> >> 
>> >> 
>> >> On Mon, Mar 20, 2017 at 11:58 AM, Zsolt Balanyi <zsolt....@gmail.com> 
>> >> wrote: 
>> >> > Hi! 
>> >> > 
>> >> > What I meant is that I would like to get (or create ) the default 
>> >> > Jackson 
>> >> > Serializer for the object being serialized, and store as default. 
>> >> > Then I could implement serialize as follows: 
>> >> > 
>> >> > @Override 
>> >> > public void serialize(Object o, JsonGenerator jg, SerializerProvider 
>> sp) 
>> >> > throws IOException { 
>> >> >   doMyStuff... 
>> >> >   default.serialize(o, jg, sp); 
>> >> > } 
>> >> > 
>> >> > The challenge here is that only a no-arg constructor is called for 
>> the 
>> >> > serializer if the serializer is used in annotation like this: 
>> >> > @JsonSerialize(using = UIElementSerializer.class) 
>> >> > 
>> >> > BR, Zsolt 
>> >> > 
>> >> > 2017. március 20., hétfő 19:21:29 UTC+1 időpontban Tatu Saloranta a 
>> >> > következőt írta: 
>> >> >> 
>> >> >> Not 100% sure I understand the question, but if you want to access 
>> >> >> information about annotations on property, from your custom 
>> >> >> serializer, you need to implement `ContextualSerializer`, and then 
>> its 
>> >> >> `createContextual()` gets called with `BeanProperty`. 
>> >> >> `BeanProperty` has accessors for annotation directly; or, you can 
>> then 
>> >> >> call `AnnotationIntrospector` (accessible from `SerializerProvider` 
>> >> >> that is also passed). 
>> >> >> 
>> >> >> -+ Tatu +- 
>> >> >> 
>> >> >> 
>> >> >> On Mon, Mar 20, 2017 at 5:26 AM, Zsolt Balanyi <zsolt....@gmail.com> 
>>
>> >> >> wrote: 
>> >> >> > Hi All! 
>> >> >> > 
>> >> >> > But what can I do when I want to use annotation, and I don't have 
>> >> >> > access 
>> >> >> > to 
>> >> >> > the mapper? 
>> >> >> > Eg: 
>> >> >> > 
>> >> >> > @JsonSerialize(using = ASerializer.class) 
>> >> >> > public class AClass { 
>> >> >> > ... 
>> >> >> > } 
>> >> >> > 
>> >> >> > BR, Zsolt 
>> >> >> > 
>> >> >> > 2015. június 23., kedd 16:18:36 UTC+2 időpontban Tim Dudgeon a 
>> >> >> > következőt 
>> >> >> > írta: 
>> >> >> >> 
>> >> >> >> Hi, 
>> >> >> >> 
>> >> >> >> I'm writing a custom serialiizer, extending StdSerializer. 
>> >> >> >> In the 
>> >> >> >> public void serialize(MoleculeObject mo, JsonGenerator jg, 
>> >> >> >> SerializerProvider sp) 
>> >> >> >> method I need to be able to access the default json 
>> serialization 
>> >> >> >> mechanism, but I don't see how to do this. 
>> >> >> >> I can't call super.serialize() as its abstract, and using 
>> >> >> >> JsonGenerator.writeObject() or 
>> >> >> >> SerializerProvider.defaultSerializeValue() 
>> >> >> >> end up calling my custom serialize() method and end up with 
>> stack 
>> >> >> >> overflow. 
>> >> >> >> 
>> >> >> >> How should I be doing this? 
>> >> >> >> 
>> >> >> >> Tim 
>> >> >> > 
>> >> >> > -- 
>> >> >> > You received this message because you are subscribed to the 
>> Google 
>> >> >> > Groups 
>> >> >> > "jackson-user" group. 
>> >> >> > To unsubscribe from this group and stop receiving emails from it, 
>> >> >> > send 
>> >> >> > an 
>> >> >> > email to jackson-user...@googlegroups.com. 
>> >> >> > To post to this group, send email to jackso...@googlegroups.com. 
>> >> >> > For more options, visit https://groups.google.com/d/optout. 
>> >> > 
>> >> > -- 
>> >> > You received this message because you are subscribed to the Google 
>> >> > Groups 
>> >> > "jackson-user" group. 
>> >> > To unsubscribe from this group and stop receiving emails from it, 
>> send 
>> >> > an 
>> >> > email to jackson-user...@googlegroups.com. 
>> >> > To post to this group, send email to jackso...@googlegroups.com. 
>> >> > For more options, visit https://groups.google.com/d/optout. 
>> > 
>> > -- 
>> > You received this message because you are subscribed to the Google 
>> Groups 
>> > "jackson-user" group. 
>> > To unsubscribe from this group and stop receiving emails from it, send 
>> an 
>> > email to jackson-user...@googlegroups.com. 
>> > To post to this group, send email to jackso...@googlegroups.com. 
>> > For more options, visit https://groups.google.com/d/optout. 
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jackson-user+unsubscr...@googlegroups.com.
To post to this group, send email to jackson-user@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to