JsonResourceUtil.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package org.jeecg.common.util;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import org.apache.commons.io.FileUtils;
  6. import org.jeecg.common.constant.AccountReportConstants;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import java.io.File;
  10. import java.net.URL;
  11. import java.util.*;
  12. /**
  13. * Created by JQ.bi on 2020.06.03
  14. */
  15. public class JsonResourceUtil {
  16. private static Logger logger = LoggerFactory.getLogger(JsonResourceUtil.class);
  17. private JsonResourceUtil() {
  18. }
  19. //filename 为文件名字 如 “/json/app_version_info.json”
  20. public static JSONObject getJsonObjFromResource(String filename) {
  21. JSONObject json = null;
  22. if (!filename.contains(".json")) {
  23. filename += ".json";
  24. }
  25. try {
  26. URL url = JsonResourceUtil.class.getResource(filename);
  27. String path = url.getPath();
  28. File file = new File(path);
  29. if (file.exists()) {
  30. String content = FileUtils.readFileToString(file, "UTF-8");
  31. json = JSON.parseObject(content);
  32. } else {
  33. logger.info("file not exist!");
  34. }
  35. } catch (Exception e) {
  36. e.printStackTrace();
  37. logger.info("readFileToString" + e.getMessage());
  38. }
  39. return json;
  40. }
  41. public static Map<String, Map<String,Object>> jsonToMap(Object jsonObj) {
  42. JSONObject jsonObject = JSONObject.parseObject(jsonObj.toString());
  43. Map<String,Map<String,Object>> mapMap= new HashMap<>();
  44. jsonObject.forEach((key,value)->{
  45. mapMap.put(key,JSONObject.parseObject(value.toString()));
  46. });
  47. return mapMap;
  48. }
  49. /**
  50. * 拼接字段
  51. */
  52. public static String joinFiled(JSONArray array) {
  53. StringBuilder sb= new StringBuilder();
  54. array.forEach(it->{
  55. if(AccountReportConstants.dicMap.get(it.toString()).isEmpty()){
  56. sb.append(it).append(",");
  57. }else {
  58. sb.append(AccountReportConstants.dicMap.get(it.toString()).get("filed")).append(",");
  59. }
  60. });
  61. return sb.deleteCharAt(sb.length()-1).toString();
  62. }
  63. /**
  64. * 拼接title
  65. */
  66. public static List<String> joinTitle(JSONArray array) {
  67. List<String> titles= new ArrayList<>(20);
  68. array.forEach(it->{
  69. if(AccountReportConstants.dicMap.get(it.toString()).isEmpty()){
  70. titles.add(it.toString());
  71. }else {
  72. titles.add(AccountReportConstants.dicMap.get(it.toString()).get("comment").toString());
  73. }
  74. });
  75. return titles;
  76. }
  77. /**
  78. * 拼接字段
  79. */
  80. public static String joinAllFiled() {
  81. StringBuilder sb= new StringBuilder();
  82. AccountReportConstants.dicMap.forEach((k,v)->{
  83. sb.append(v.get("filed")).append(",");
  84. });
  85. return sb.deleteCharAt(sb.length()-1).toString();
  86. }
  87. }