JsonResourceUtil.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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.IOUtils;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.core.io.ClassPathResource;
  9. import java.io.InputStream;
  10. import java.nio.charset.StandardCharsets;
  11. import java.util.ArrayList;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * Created by JQ.bi on 2020.06.03
  17. */
  18. public class JsonResourceUtil {
  19. private static Logger logger = LoggerFactory.getLogger(JsonResourceUtil.class);
  20. private JsonResourceUtil() {
  21. }
  22. //filename 为文件名字 如 “/json/app_version_info.json”
  23. public static JSONObject getJsonObjFromResource(String filename) {
  24. JSONObject json = null;
  25. if (!filename.contains(".json")) {
  26. filename += ".json";
  27. }
  28. try {
  29. ClassPathResource classPathResource = new ClassPathResource(filename);
  30. if (classPathResource.exists()) {
  31. InputStream inputStream = classPathResource.getInputStream();
  32. String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
  33. json = JSON.parseObject(content);
  34. } else {
  35. logger.info("file not exist!");
  36. }
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. logger.info("readFileToString" + e.getMessage());
  40. }
  41. return json;
  42. }
  43. //json文件转化为JSONArray
  44. public static JSONArray getJsonArrFromResource(String filename) {
  45. JSONArray json = null;
  46. if (!filename.contains(".json")) {
  47. filename += ".json";
  48. }
  49. try {
  50. ClassPathResource classPathResource = new ClassPathResource(filename);
  51. if (classPathResource.exists()) {
  52. InputStream inputStream = classPathResource.getInputStream();
  53. String content = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
  54. json = JSON.parseArray(content);
  55. } else {
  56. logger.info("file not exist!");
  57. }
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. logger.info("readFileToString" + e.getMessage());
  61. }
  62. return json;
  63. }
  64. public static Map<String, Map<String, Object>> jsonToMap(Object jsonObj) {
  65. JSONObject jsonObject = JSONObject.parseObject(jsonObj.toString());
  66. Map<String, Map<String, Object>> mapMap = new HashMap<>();
  67. jsonObject.forEach((key, value) -> mapMap.put(key, JSONObject.parseObject(value.toString())));
  68. return mapMap;
  69. }
  70. /**
  71. * 拼接字段
  72. */
  73. public static String joinFiled(Map<String, Map<String, Object>> mapMap, JSONArray array) {
  74. System.err.println("获取的数据字段:" + mapMap);
  75. StringBuilder sb = new StringBuilder();
  76. for (int i = 0; i < array.size(); i++) {
  77. String column = array.getString(i);
  78. if (column == null || column == "") {
  79. sb.append("").append(",");
  80. } else {
  81. sb.append(mapMap.get(column).get("filed")).append(",");
  82. }
  83. }
  84. /* array.forEach(it -> {
  85. if (mapMap.get(String.valueOf(it)).isEmpty()) {
  86. sb.append(it).append(",");
  87. } else {
  88. sb.append(mapMap.get(it.toString()).get("filed")).append(",");
  89. }
  90. });*/
  91. return sb.deleteCharAt(sb.length() - 1).toString();
  92. }
  93. /**
  94. * 拼接title
  95. */
  96. public static List<String> joinTitle(Map<String, Map<String, Object>> mapMap, JSONArray array) {
  97. List<String> titles = new ArrayList<>(20);
  98. array.forEach(it -> {
  99. if (mapMap.get(String.valueOf(it)).isEmpty()) {
  100. titles.add(String.valueOf(it));
  101. } else {
  102. titles.add(mapMap.get(it.toString()).get("comment").toString());
  103. }
  104. });
  105. return titles;
  106. }
  107. /**
  108. * 拼接字段
  109. */
  110. public static String joinAllFiled(Map<String, Map<String, Object>> mapMap) {
  111. StringBuilder sb = new StringBuilder();
  112. mapMap.forEach((k, v) -> sb.append(v.get("filed")).append(","));
  113. return sb.deleteCharAt(sb.length() - 1).toString();
  114. }
  115. }