Hi, I have recently included into ELSE (though it is not part of any release yet) a
[dictionary] object that is a very simple external based on vanilla's [text] (hence, it's an abstraction). It works more like a simplified Max
[coll]: address/key lookup returning stored data. It’s not a hierarchical JSON-style structure, but it might cover part of the associative key–value use case. Curious what specific features you need on the C side and I am also interested in this whole topic.
I am still using some objects from ELSE into this abstraction, so it can't be fully Vanilla. I am using some dynamic patching hacks that need "initbang", which is a functionality I have included into my [loadbanger] object.
One thing that I am struggling with in [text] is being able to set commas into a line via external messages, see
https://github.com/pure-data/pure-data/issues/1262 - I am now doing a very dirty hack to overcome this issue. And also, getting a whole line with things separated by commas is not quite easy with [text], but I've managed to do so with my [dictionary] abstraction.
By the way, I was trying to use Pd's Data Structures to deal with some Lisp-like Linked Lists, hoping to be able to work with arrays of arrays, but it was just too limited and impossible. This is for another project, which is like the BACH library for Pd. The way around was to use LUA, and I also have LUA in ELSE.
Maybe dealing with LUA can help and we have also already discussed about natively supporting LUA in PD, see
https://github.com/pure-data/pure-data/issues/687
As far as parsing JSON files goes into Pd vanilla, I think that besides importing it into a [text], you can think about maybe using [file]? Maybe that's overkill, I don't know.
cheers