Sent from my iPhone
> On 11 Jun 2018, at 08:02, Norbert Hartl <norb...@hartl.name> wrote: > > > >> Am 11.06.2018 um 08:55 schrieb Richard O'Keefe <rao...@gmail.com>: >> >> The order of key:value pairs in a JSON "object" >> is really NOT supposed to matter. For example, >> if you put {"a":1,"b":2} into a JSON database >> you should not be surprised to get {"b":2,"a":1} >> back. Or vice versa, of course. >> > But when it does what do you do? It is pretty clear that the order is > important for that format. So saying it shouldn’t matter does not make it > better. If you work with mongo DB you will see the same that for some queries > you have to provide proper order of keys. > > Norbert > >>> On 8 June 2018 at 00:16, Tim Mackinnon <tim@testit.works> wrote: >>> Thanks guys - it seems like I was on the right track. >>> >>> Making my own NeoJsonObject did work, but I will go back and see if I’m >>> really using the js nature of the values and if for this, just an >>> OrderedDictionary might be clearer. >>> >>> As an aside, I was doing some experiments with prismic.io (a headless cms) >>> and the order of your content when rendering it on a page(generically) is >>> obviously important. >>> >>> Tim >>> >>> Sent from my iPhone >>> >>> > On 7 Jun 2018, at 07:46, Sven Van Caekenberghe <s...@stfx.eu> wrote: >>> > >>> > >>> > >>> >> On 7 Jun 2018, at 08:16, Norbert Hartl <norb...@hartl.name> wrote: >>> >> >>> >> >>> >> >>> >>> Am 07.06.2018 um 07:29 schrieb Sven Van Caekenberghe <s...@stfx.eu>: >>> >>> >>> >>> Tim, >>> >>> >>> >>>> On 7 Jun 2018, at 01:37, Tim Mackinnon <tim@testit.works> 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 >>> >>> >> >