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" <[email protected]> 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 >
