in reply to Re^2: How to encode/decode a class inside a class in JSON
in thread How to encode/decode a class inside a class in JSON

Thanks, that is where I was confused. In that case, you may just be left with adding an internal field _type that tracks the intended __PACKAGE__. Seems like anything that is done will require some custom coordination between what gets dumped via TO_JSON and whatever is used to inflate the instance after an initial decode. As I mentioned earlier, I've solved this in the past with a _type field that tracked the __PACKAGE__ name, but the instances were not nested - which in this case complicates it during the decode step.

Here's what I suggest:

The spirit of this can be described as having the JSON moduling knowing when to call a FROM_JSON from the specified package when it sees a special internal field that contains which package to inflate. Since symmetry of this capability is not provided by the JSON module itself, you'll have to implement it yourself as part of the decode step.