johnzon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Romain Manni-Bucau <rmannibu...@gmail.com>
Subject Re: Mapping objects with cycles
Date Tue, 05 Apr 2016 22:59:16 GMT
JsonPointer is the clean solution to that.

Also I would like the default to fail - stackoverflow - and 2 flags to 1.
skip 2. use jsonpointer.

Maintaining ref can have issues and == can fail in several cases, that s
why I want this default matching model 1-1.

Finally to be complete flag should be an annot or global mapperbuilder (+
chain until front integrations) option.
Le 5 avr. 2016 23:34, "Mark Struberg" <struberg@yahoo.de.invalid> a écrit :

> Hi!
>
> While discussing with Reinhard we came over an interesting use case:
>
> public class Person {
>   private String name;
>   private Person marriedTo;
> }
>
> Person reinhard = new Person("reinhard");
> Person anna = new Person("anna");
>
> reinhard.setMarriedTo(anna);
> anna.serMarriedTo(reinhard);
>
> String json = Mapper.writeObjectAsString(reinhard);
>
>
>
> Currently this sample would lead to an endless loop, right?
>
> BUT, we can do something against it: We keep a Map<Object, Integer>. For
> each object written we increment the number;
> IF an object was already written before (comparison using == and not
> equals()!) then we write a 'placeholder'
>
> {"name":"reinhard","marriedTo":{"name":"anna","marriedTo":"1"}}
>
> Not sure if we can use a simple number or whether we need to use a
> placeholder object with e.g. "//javaType".
>
> But you get the idea I hope.
>
> Any thoughts?
>
> LieGrue,
> strub
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message