JSON encode escape forward slash
For some reason, in the upstream lua_cjson
, the ‘/’ sign is escaped.
But according to the rfc4627
standard, it is unnecessary and questionably compatible with other implementations.
By toggling the json_escape_forward_slash
compat option, you can chose either the json encoder escapes the ‘/’ sign or it does not:
tarantool> require('compat').json_escape_forward_slash = 'old'
---
...
tarantool> require('json').encode('foo/bar')
---
- '"foo\/bar"'
...
tarantool> require('compat').json_escape_forward_slash = 'new'
---
...
tarantool> require('json').encode('foo/bar')
---
- '"foo/bar"'
...
The option affects both the global serializer instance and serializers created with json.new()
.
It also affects the way log messages are encoded when written to the log in the json format (the box.cfg.log_format
option is set to ‘json’).