Encodes an object key, quoting if necessary
String encodeKey(String key) { if (isValidUnquotedKey(key)) { return key; } return '$doubleQuote${escapeString(key)}$doubleQuote'; }