application/json 请求方式 JSON转为 Record 转换类

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Record;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class JSONUtil {
    public static Record parse(JSONObject jobj) {
        return buildJSONObject(jobj);
    }

    public static Record parse(String str) {
        if (StrKit.isBlank(str)) return null;
        JSONObject jobj = JSONObject.parseObject(str);
        return buildJSONObject(jobj);
    }


    private static Record buildJSONObject(JSONObject jobj) {
        Record record = new Record();
        if (jobj == null) {
            return record;
        }
        for (Map.Entry<String, Object> entry : jobj.entrySet()) {
            if (entry.getValue() instanceof JSONObject) {
                record.set(entry.getKey(), buildJSONObject((JSONObject) entry.getValue()));
            } else if (entry.getValue() instanceof JSONArray) {
                record.set(entry.getKey(), addChild((JSONArray) entry.getValue()));
            } else {
                record.set(entry.getKey(), entry.getValue());
            }
        }
        return record;
    }

    private static List<Object> addChild(JSONArray array) {
        List<Object> result = new ArrayList<>();
        for (int i = 0; i < array.size(); i++) {
            Object o = array.get(i);
            if (o instanceof JSONObject) {
                JSONObject jsonObject = (JSONObject) o;
                Record record = buildJSONObject(jsonObject);
                result.add(record);
            } else if (o instanceof JSONArray) {
                addChild((JSONArray) o);
            } else {
                result.add(o);

            }
        }
        return result;
    }
}


评论区

zhangtianxiao

2019-12-20 16:18

zhangtianxiao

2019-12-20 16:19

zhangtianxiao

2019-12-20 16:19

zhangtianxiao

2019-12-20 16:19

alert(1)

zhangshiqiang

2019-12-21 17:33

热门分享

扫码入社