renderJson返回json不正确

后台代码 :Map<String, Object> resMap = new HashMap<String, Object>();

resMap.put("flag", "1");//成功

renderJson(resMap);

前台返回:Local\,前台返回不正确。应该返回{"flag", "1"}

为什么调试时候返回的的字符串就正确。不调试就错误。

评论区

JFinal

2019-09-09 15:28

调试与不调试显然是不会有区别的,可能是别的原因,例如在不调试的时候 action 其实是被重定向了之类的问题

细心多调试几次

zxh166

2019-09-09 15:34

resMap 我打印了 没有问题 ,一旦执行这个方法就有问题renderJson(resMap);

JFinal

2019-09-09 15:36

@zxh166 你这么来测试一下:
String json = JsonKit.toJson(resMap);
System.out.println(json);
renderJson(json);

zxh166

2019-09-09 15:36

我用的是jfinal 2.2

JFinal

2019-09-09 15:40

@zxh166 jfinal 2.2 版本太老了,但用法还是一样的, renderJson 这个方法很早就有了,打断点单步调试一定可以解决的,调试进入 JsonRender.java 内部去

zxh166

2019-09-09 15:56

打印的是对的,但是情况还是和以前一样

JFinal

2019-09-09 15:57

@zxh166 到底是什么错误? 你的提问中并未明确说明是什么错误

此外,用一用 renderJson("flag", 1);

注意 "1" 与 1 是不同的,前者是字符串

zxh166

2019-09-09 16:03

我的错误就是map经过renderJson方法后,前台取回的字符串不是{"flag", "1"}而是Local\

JFinal

2019-09-09 16:17

@zxh166 这个问题无法解释,你用别的数据试试看:
map.put("msg", "ok");
renderJson(map);

zxh166

2019-09-09 16:42

路由后的controller直接返回字符串给前台可以不

热门反馈

扫码入社