Hi, Yes, object properties in JSON are not ordered, by definition. But for humans it can make sense. Converting your domain objects to OrderedDictionaries or overwriting #neoJSONOn: are valid ways to control NeoJSON.
However, I also think that it might be possible to solve the ordering requirement with a regular mapping, provided I make a little internal change - I will investigate that and report back. Sven > On 30 Jun 2016, at 17:29, PBKResearch <[email protected]> wrote: > > Bernardo > > Thanks for this. After sending my previous mail, I did what I should have > done first and looked at list of collection objects in the system browser. So > I discovered OrderedDictionary for the first time. I am pleased to see that > this is the key to the solution. > > Peter > > From: Pharo-users [mailto:[email protected]] On Behalf Of > Bernardo Ezequiel Contreras > Sent: 30 June 2016 16:17 > To: Any question about pharo is welcome <[email protected]> > Subject: Re: [Pharo-users] Provide a mapping for a collection of > <Association>s in NeoJSON > > Peter, > i had the same issue, i couldn't find the way to do it, but i hack my own > writing like this > > NDBFood>>neoJsonOn: neoJSONWriter > "custom writing" > > neoJSONWriter > writeMap: > (OrderedDictionary new > add: 'ndb_no' -> ndbno; > add: 'full_name' -> name; > add: 'food_group' -> fg; > add: 'factors' -> self > factors; > add: 'nutrients' -> self > nutrients; > yourself) > > i just implement my own writing for my objects. > > HTH > > On Thu, Jun 30, 2016 at 12:06 PM, PBKResearch <[email protected]> wrote: >> Hello >> >> I have recently used NeoJSON for the first time. All went pretty well, but I >> would like to make a small tweak to the output, which probably involves >> defining a mapping. I have read through the information in the NeoJSON pdf, >> and also looked at the class comments, but I am a bit lost. Could Sven or >> anyone please give me a hint? >> >> What I want is to construct a JSON object as a Pharo dictionary, but then >> control the order in which the fields are output to the JSON file. Clearly >> the order is irrelevant for a computer, but it could be helpful to a human >> reader to put them in an order which reflects the way humans think about the >> objects. The keys of a dictionary are of course unordered, so this is not >> possible, but if we step back a bit we see that a dictionary is often >> constructed from a collection of associations; if we could stop at this >> stage, and have a mapping which outputs the associations in the order in >> which they appear in the collection, this would give the control I am >> looking for. >> >> Am I talking nonsense, or is there any way of implementing this using >> NeoJSON mappings? >> >> Best wishes >> >> Peter Kenny > > > > -- > Bernardo E.C. > > Sent from a cheap desktop computer in South America.
