> On 7 Jun 2018, at 08:16, Norbert Hartl <[email protected]> wrote:
> 
> 
> 
>> Am 07.06.2018 um 07:29 schrieb Sven Van Caekenberghe <[email protected]>:
>> 
>> Tim,
>> 
>>> On 7 Jun 2018, at 01:37, Tim Mackinnon <[email protected]> wrote:
>>> 
>>> Hi - I’ve hit some Json where the outputted values (they are field names) 
>>> are written out in a specific order - and the author hasn’t chosen to use 
>>> an array to represent those fields in a specific order.
>>> 
>>> { ‘field1’ : { ….}, ‘field2’: { … } }
>>> 
>>> I think this is technically incorrect and should be:
>>> 
>>> { [ {‘field1’ : { ….}, ‘field2’: { … } ]}
>>> 
>>> Anyway - given what I’ve got, would it be a terrible idea to create my own 
>>> version NeoJsonObject and just make it a subclass of OrderedDictionary?
>>> 
>>> I can’t see any issues - but then I might be kidding myself…
>>> 
>>> Tim
>> 
>> Yea, I think you could try making a NeoJSONOrderedObject as a subclass of 
>> OrderedDictionary, modelled after NeoJSONObject. Just remember it is 
>> implemented using DNU, which will surprise you at one point.
>> 
> Wouldn‘t be setting #mapClass: on the reader to OrderedDictionary not enough? 
> Dictionary is the default anyway.
> 
> Norbert

Yes, of course, Norbert, it keeps the order:

(NeoJSONReader on: '{"BB":1,"CC":2,"AA":3}' readStream) mapClass: 
OrderedDictionary; next.

  => an OrderedDictionary('BB'->1 'CC'->2 'AA'->3)

NeoJSONWriter toString: (OrderedDictionary new at: #BB put: 1; at: #CC put: 2; 
at: #AA put: 3; yourself). 

  => '{""BB"":1,""CC"":2,""AA"":3}'

It is not functionally 100% the same as a hypothetical NeoJSONOrderedObject, 
but might do.

Sven

Reply via email to