Yes, that is because we can define this kind of structure with XML/JSON schema with ease.
Gary On Jan 4, 2016 11:55 AM, "Robin Coe" <[email protected]> wrote: > I was trying to deserialize a log event written by the JSONLayout > appender, which uses Jackson. I therefore also am using Jackson but with > the MrBeanModule, which is a POJO materializer. After much difficulty with > Jackson throwing deserialization exceptions with the "contextMap" field, I > learned that the map is actually written out as a List of Maps (i.e. > List<Map<String,String>>. I've included one such event here, with > unnecessary fields shortened: > > > {"timeMillis":...,"thread":"...","level":"OFF","loggerName":"...","message":"...","endOfBatch":false,"loggerFqcn":"...","contextMap":[{"key":"LOGROLL","value":"com.xxx.xxx.handler.event.FailoverHandler"},{"key":"ROUTINGKEY","value":"elasticsearch-rollover"}]} > > I'm curious why the contextMap is represented as the more complex List of > single entry Maps, as opposed to a single multi-valued Map? So, instead of > something that looks like: > > > {"contextMap":[{"key":"key1"},{"value":"value1"},{"key":"key2"},{"value":"value2"},...] > > I would expect the much simpler (and easily parseable): > {"contextMap":{"key1":"value1","key2":"value2",...}. > > Is this intended? > > Thanks, > Robin. >
