JsonKit.toJson这个方法有bug,求解

jason9988 发布于 2015/06/24 17:39
阅读 433
收藏 0

JsonKit.toJson(Object value, int depth)这个方法貌似有bug,输入http://www.happyshow.vedio1,输出http:\/\/www.happyshow.vedio1,如何调用(jfinal版本是1.9)?

输入参数
String[] products = { "http://www.happyshow.vedio1",
                "http://www.happyshow.vedio2" };
                
调用JsonKit.toJson(Object value, int depth)方法之后:                
返回的    ......."http:\/\/www.happyshow.vedio1","http:\/\/www.happyshow.vedio2".......

            
        
代码片段:        
        UserVedio userVedio = new UserVedio();
        userVedio.setCareNum("689");
        //products是用户自己创造的视频内容
        String[] products = { "http://www.happyshow.vedio1",
                "http://www.happyshow.vedio2" };
        String[] cares = { "http://www.happyshow.vedio3",
        "http://www.happyshow.vedio4" };
        //cares是用户喜欢的视频内容
        userVedio.setCares(cares);
        userVedio.setFansNum("111119");
        userVedio.setProducts(products);
        List theList = new ArrayList();
        theList.add(userVedio);
        String jsonStr = JsonUtil.format2(theList,5);

加载中
1
JFinal
JFinal

     你期望的值应该是 "//" 而不是"\\",但 jfinal 的转换是正确的, "// 会被转成 "\/\/" 这是因为 json 规范就是如此,不是 jfinal 能改的,json 规范看一下这里:http://json.org/

   注意看下图中的,红色竖长红框中的字符,会被左边的红框中的字符"\" 做转义:


0
JFinal
JFinal
有什么错误? 输出很正常
0
j
jason9988
“http:\/\/www.happyshow.vedio1 ”里的  “\/\/”是不对的,期望的是“\\”
0
j
jason9988
詹总,怎么解决? 多谢.....
0
j
jason9988
谢谢詹总,有其它解决问题的办法么?
0
JFinal
JFinal

引用来自“jason9988”的评论

谢谢詹总,有其它解决问题的办法么?
数据是正确的,直接用就可以了,还需要解决什么? renderJson 到浏览器端以后,浏览器会自动识别转换发了的数据,会正确识别你的 url,包括 \/\/ 这个东东
0
JFinal
JFinal
在这里可以下载 json 规范文档,里面对需要转义的字符进行了说明: http://json.cn/standard.html  。 需要强调的是部分 json 库并没有按标准来,所以个别字符没转义
0
j
jason9988
好的 ,很感谢,辛苦你了~~~~
返回顶部
顶部