...
Code Block |
---|
do( $value = $args[1], $value = replaceAll( $value , "\b","\\\\b"), $value = replaceAll( $value , "\f","\\\\f"), $value = replaceAll( $value , "\t","\\\\t"), $value = replaceAll( $value , "\r","\\\\r"), $value = replaceAll( $value , "\n","\\\\n"), $value = replaceAll( $value , "\\\\","\\\\\\\\"), $value = replaceAll( $value , '"','\\\\"') ) |
Validating JSON Files
JSON code can include characters that cannot be written to a database that is using the UTF-8 database such as Emojis which are 4 bit characters. This may be solved in the future by migrating the database to UTF-8mb4 but in the meantime, invalid characters can be removed using the following regular expression to do an initial validation on any JSON:
character set. For example, 4-bit Emojis are not supported by UTF-8.
The following regular expression lists the characters expected in a JSON file and removes invalid characters from it.
Code Block |
---|
replaceAll(JSON Code,"[^\\p{Space}0-9A-Za-z!:\\\"%&\\[*()\\],-/_\\\\{}\\.]","") |
The expression contains a list of expected characters to be found in JSON files. Note how back slashes are used to escape backslash character escapes special characters such as [] , .
and \ See
Tip |
---|
The UTF-8mb4 character set supports a wider range of characters, such as Emojis. Migrating your database to use this character set would allow JSON to be used without needing to validate it using a regular expression. |
See also: Regular Expressions