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.bala...@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+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.

-- 
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