JFinal3.0,如何处理Json请求

如题,controller中如何获取上送请求中的Json报文。

评论区

YiQang

2017-12-21 15:05

@JFinal 单步调试的时候在actionHandler中这个函数出现异常:
catch (Exception e) {
if (log.isErrorEnabled()) {
String qs = request.getQueryString();
(异常)log.error(qs == null ? target : target + "?" + qs, e);
}

JFinal

2017-12-21 16:48

@YiQang 缺少 fastjson 的 jar 包而已,这个是最基本的异常,一定要会识别:
Caused by: java.lang.ClassNotFoundException: com.alibaba.fastjson.JSON

YiQang

2017-12-21 16:58

@JFinal 嗷嗷,了解,多谢老师

JJfinal

2017-12-26 19:43

@JFinal 我也是这样用的 为何我的是空??

JJfinal

2017-12-26 19:43

@zsq 我也遇到这个问题了

Evan.H

2018-03-16 14:24

@zsq 同样问题,不过临时用了Json to Map,然后 Map to Bean 的方案解决!

Diors.Po

2018-08-04 15:04

String jsonString = HttpKit.readData(getRequest());
User user = FastJson.getJson().parse(jsonString, User.class);
生成的Model对象内容为空是为啥@JFinal

himans

2018-11-09 19:51

@JFinal 使用 String jsonString = HttpKit.readData(getRequest()); 获取前台json对象报错:java.lang.IllegalStateException: STREAMED
at org.eclipse.jetty.server.Request.getReader(Request.java:1162)
前台是jquery的ajax的Post,jfinal版本3.5

JFinal

2018-11-09 20:00

@himans 既然是 3.5 为啥不用 getRawData() 来获取?

himans

2018-11-11 13:59

@JFinal getRawData()同样会抛出IllegalStateException异常,是因为用jquery的ajax提交的原因吗?

himans

2018-11-11 15:08

@JFinal 已经解决,查看了你之前的解释:
------------------------
JFinal 10-14 14:48
当客户端通过一些第三方 http 工具发送数据,并将数据放在 body 中时可以使用 getRaData()

例如,客户端通过 OkHttp 或者 Http client 这类第三方发送 json 或者 XML 时就可以:
String jsonStr = getRawData();
User user = FastJson.getJson().parse(jsonStr, User.class);
Ret ret = userService.justDoIt(user);
renderJson(ret);

如果客户端的数据是通过普通的 html form 表单提交,或者通过 javascript 表单提交或者 ajax 发来的请求,就不能使用 getRawData()
-----------------------
然后研究了一下,通过重写前台js解决了getRawData()数据的问题。
有空我分享一下~

热门反馈

扫码入社