just check jsonp before, know they were talking about it and if so we should rely on the spec. If not it sounds good for me.
Romain Manni-Bucau @rmannibucau | Blog | Github | LinkedIn | Tomitriber 2016-04-06 9:11 GMT+02:00 Mark Struberg <[email protected]>: > Using JsonPointers for this is a good idea. > > > I'm also fine with the 3 configurable modes. > > With JsonPointers the sample would result in the following string: > > {"name":"reinhard","marriedTo":{"name":"anna","marriedTo":"/"}} > > We could store a IdentityMap<Object, String> to map from the Object to it's > corresponding JsonPointer during the processing. > > > LieGrue, > strub > > > > > >> On Wednesday, 6 April 2016, 0:59, Romain Manni-Bucau <[email protected]> >> wrote: >> > 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 >>> >>
