openresty cjson转义斜线/为\\/

天涯浪子 提交于 2020-03-13 22:00:51

现象如下:

print(cjson.encode({url="http://www.baidu.com"}));

{"url":"http:\/\/www.biau.com"}

分析发现cjson实现时对/进行转义,json规范里约定/可以转义也可以不转义。解决办法修改cjson源码,目录在openresty-x.x.x.x/bundle/lua-cjson-y.y.y.y/

修改文件:lua_cjson.c 搜索char2escape

NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\\/",
最后一个字符替换为:
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,

重新编译openresty解决。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!