不知道是不是jfinal的bug

发布于 2021-11-29 08:36:39 字数 376 浏览 753 评论 8

Person p = new Person();
p.setName("zhangsan");
p.setPhoto("img/zhangsan.png");
renderJson(p);



输出结果:
{"name":"zhangsan","photo":"img/zhangsan.png"}

其中 img/zhangsan.png 多了一个“”

改成gson转换正常,这个算不算jfinal的一个bug呢 

@JFinal

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

凡尘雨 2021-11-30 19:10:24

呵呵,呵呵。。

最偏执的依靠 2021-11-30 19:10:07

A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes. A character is represented as a single character string. A string is very much like a C or Java string.

确实是json的规范。转义后,如果不是用js解析的话,还需要对"/"过滤一次,"/" 不转义也并不影响结果。个人比较偏向不转义。

苍暮颜 2021-11-30 19:09:59

    http://json.org 给出的json规范是需要对 "/" 转义成  "/",所以 jfinal 的 JsonKit 做了这个转换,不过 gson、jackson 并没有遵守这个规范,网上有一些文章对此字符是否要转换也说法不一, jfinal 2.1 会再次对此问题进行权衡考虑。

    最后,即便是进行了转义,在浏览器这端的 js 中使用 json 数据是没有问题的,可以被识别。

瑾兮 2021-11-30 19:09:10

不是bug

归属感 2021-11-30 19:08:57

是转义的问题,我是想输入什么就输出什么,试了下gson,没有这个问题。

怎言笑 2021-11-30 18:46:20

回复
用jfinal的时候你是在浏览器响应里看的数据的话,是转义的,在预览里是正常的,用js取json属性肯定也是正确的,没有多余字符。你用gson测试应该是直接在ide的控制台输出的吧,那和渲染到网页页面一样,是正常的,测试的环境不同。

叹沉浮 2021-11-30 17:41:33

回复
都是用浏览器请求的结果

伪装你 2021-11-30 12:28:06

这个本身就是一个转义字符,/就表示/,网络间传输时肯定会转义的,你把它放到对象里,然后debug查看就知道了,比如\就是,'就是'等等,和jfinal没多大关系,jfinal基本上是很原生态的封装。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文