added support for JSON encoding/decoding of ordered and unordered maps with string keys