On 1 Mar 2019, at 12:32, Tim Mackinnon <tim@testit.works> wrote:
On 1 Mar 2019, at 10:35, Sven Van Caekenberghe <sven@stfx.eu> wrote:
Forget about the way you are trying to implement it, to what would
{ #key->#value. 1. true }
be rendered in JSON ?
{ "key":"value", 1, true }
or
[ "key":"value", 1, true ]
Both are illegal JSON.
You didnât read what I said - with those 2 tiny changes - both of those given an exception just like STONJSON - the only difference is that I donât have to put asDictionary everywhere.
Anyway - I think Iâve learned a lot from this discussion - and as Pharo is malleable I can do my little nasty subclass until I get burned and then I will probably adopt a proper Config object like Henrik mentioned ;)
Yes you can !
Just as a small additional question - when you do :
ex := { #track->#pharo. #language->#smalltalk. #exercises->{ #slug->'hello'. #id->55. #topics->#('a' 'b' 'c') } asDictionary } asDictionary.
Am I right in thinking that with asDictionary the order wonât be deterministic (which is valid for JSON dictionaries, but annoying for diffing config files). This is why I was doing asOrderedDictionary as I though I had seen it change on me a few times when I was generating output.
Right, #asDictionary or #asOrderedDictionary both work, it is up to you. But, like you said, there is no order in JSON, although it can help in diffing.
Tim