cargo add json_keyquotes_convert
```rust use jsonkeyquotesconvert::{JsonKeyQuoteConverter, Quotes};
let json = JsonKeyQuoteConverter::new("{key: \"va\nl\"}", Quotes::default()) .addkeyquotes().jsonescapectrlchars().json();
// JSON string will now be: {\"key\": \"va\nl\"} // Raw JSON will now be: {"key": "va\nl"} ```
```rust use jsonkeyquotesconvert::{jsonkeyquote_utils, Quotes};
let jsonadded = jsonkeyquoteutils::jsonaddkeyquotes("{key: \"va\nl\"}", Quotes::default()); let jsonescaped = jsonkeyquoteutils::jsonescapectrlchars(&jsonadded);
// JSON string will now be: {\"key\": \"va\nl\"} // Raw JSON will now be: {"key": "va\nl"} ```
| Great | Good | Unsupported | | :----------------: | :-----------------: | :-----------: | | :heavycheckmark: | :whitecheckmark: | :x: | | Automatically | Configurable | Unsupported |
* Any unlisted features might be unsupported. *
- Adding quotes around JSON keys:
- Double-quotes: :heavycheckmark: (default)
- Single-quotes: :whitecheckmark:
- Removing quotes around JSON keys:
- Double-quotes: :heavycheckmark:
- Single-quotes: :heavycheckmark:
- Supported quotes around JSON string values:
- Double-quotes: :heavycheckmark:
- Single-quotes: :heavycheckmark:
- Supports control character escaping in JSON keys:
- Newline (\n): :heavycheckmark: :whitecheckmark:
- Tab (\t): :heavycheckmark: :whitecheckmark:
- Note: These characters could be misinterpreted as not belonging to the key. It is therefore not recommended to start or end a JSON key with these characters.
- Supports control character unescaping in JSON keys:
- Newline (\n): :heavycheckmark: :whitecheckmark:
- Tab (\t): :heavycheckmark: :whitecheckmark:
- Note: These characters could be misinterpreted as not belonging to the key. It is therefore not recommended to start or end a JSON key with these characters.
- Supports control character escaping in JSON string values:
- Newline (\n): :heavycheckmark: :whitecheckmark:
- Tab (\t): :heavycheckmark: :whitecheckmark:
- Supports control character unescaping in JSON string values:
- Newline (\n): :heavycheckmark: :whitecheckmark:
- Tab (\t): :heavycheckmark: :whitecheckmark:
- Supported :heavycheckmark: characters in JSON keys:
- [A-Z] [a-z] [0-9] ` ~ ! @ # $ % € ^ & * ( ) - _ = + \ | ; " ' . < > / ? \r \n \t \f \v <U+0020>(Space)
- Note: ' and " and their escaped variants could be misinterpreted as keyquotes when used as the last character in a JSON key. It is therefore not recommended to start or end a JSON key with these characters.
- Supported :heavycheckmark: characters in JSON values:
- [A-Z] [a-z] [0-9] ` ~ ! @ # $ % € ^ & * ( ) - _ = + \ | : ; " ' . < > / ? \r \n \t \f \v <U+0020>(Space)