1. 博客
  2. 解决JFinal不能获取content-type:application/json的数据

解决JFinal不能获取content-type:application/json的数据

解决JFinal不能获取content-type:application/json的数据

需求

前端往后台传输一个数组时,后台解析比较麻烦,就直接改为json传输了,但是JFinal默认没有接收这种数据格式,然后经过查找,找到以下解决方法

解决方法

创建一个BaseController覆盖默认的gerPara方法

附代码

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jfinal.core.Controller;
import com.jfinal.kit.HttpKit;

/**
 * 作者 edik
 * 2018/9/4 上午10:20
 */
public class BaseController extends Controller {

    @Override
    public String getPara() {
        String contentType = getRequest().getContentType();
        if (contentType.indexOf("application/json") > -1 || contentType.indexOf("text/json") > -1) {
            return HttpKit.readData(getRequest());
        }
        return super.getPara();
    }

    public JSONObject getParaToJSONObject() {
        return JSON.parseObject(HttpKit.readData(getRequest()));
    }

    public JSONArray getParaToJSONArray() {
        return JSON.parseArray(HttpKit.readData(getRequest()));
    }
}

使用方法

public void json(){
    String json = getPara();
    System.out.println(json);
    renderJson(json);
}

文章标题:解决JFinal不能获取content-type:application/json的数据

文章链接:http://www.edik.cn/article/320

转载请务必注明出处,欢迎分享

目录