package org.jeecg.common.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.commons.io.FileUtils; import org.jeecg.common.constant.AccountReportConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; import java.net.URL; import java.util.*; /** * Created by JQ.bi on 2020.06.03 */ public class JsonResourceUtil { private static Logger logger = LoggerFactory.getLogger(JsonResourceUtil.class); private JsonResourceUtil() { } //filename 为文件名字 如 “/json/app_version_info.json” public static JSONObject getJsonObjFromResource(String filename) { JSONObject json = null; if (!filename.contains(".json")) { filename += ".json"; } try { URL url = JsonResourceUtil.class.getResource(filename); String path = url.getPath(); File file = new File(path); if (file.exists()) { String content = FileUtils.readFileToString(file, "UTF-8"); json = JSON.parseObject(content); } else { logger.info("file not exist!"); } } catch (Exception e) { e.printStackTrace(); logger.info("readFileToString" + e.getMessage()); } return json; } public static Map> jsonToMap(Object jsonObj) { JSONObject jsonObject = JSONObject.parseObject(jsonObj.toString()); Map> mapMap= new HashMap<>(); jsonObject.forEach((key,value)->{ mapMap.put(key,JSONObject.parseObject(value.toString())); }); return mapMap; } /** * 拼接字段 */ public static String joinFiled(JSONArray array) { StringBuilder sb= new StringBuilder(); array.forEach(it->{ if(AccountReportConstants.dicMap.get(it.toString()).isEmpty()){ sb.append(it).append(","); }else { sb.append(AccountReportConstants.dicMap.get(it.toString()).get("filed")).append(","); } }); return sb.deleteCharAt(sb.length()-1).toString(); } /** * 拼接title */ public static List joinTitle(JSONArray array) { List titles= new ArrayList<>(20); array.forEach(it->{ if(AccountReportConstants.dicMap.get(it.toString()).isEmpty()){ titles.add(it.toString()); }else { titles.add(AccountReportConstants.dicMap.get(it.toString()).get("comment").toString()); } }); return titles; } /** * 拼接字段 */ public static String joinAllFiled() { StringBuilder sb= new StringBuilder(); AccountReportConstants.dicMap.forEach((k,v)->{ sb.append(v.get("filed")).append(","); }); return sb.deleteCharAt(sb.length()-1).toString(); } }