JsonResourceUtil.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.ruixuan.report.utils;
  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. StringBuilder sb = new StringBuilder();
  75. array.forEach(it -> {
  76. String filedName = it.toString();
  77. if (null == mapMap.get(filedName) || mapMap.get(filedName).isEmpty()) {
  78. sb.append(it).append(",");
  79. } else {
  80. sb.append(mapMap.get(filedName).get("filed")).append(",");
  81. }
  82. });
  83. return sb.deleteCharAt(sb.length() - 1).toString();
  84. }
  85. /**
  86. * 拼接title
  87. */
  88. public static List<String> joinTitle(Map<String, Map<String, Object>> mapMap, JSONArray array) {
  89. List<String> titles = new ArrayList<>(20);
  90. array.forEach(it -> {
  91. String titleName = it.toString();
  92. if (null == mapMap.get(titleName) || mapMap.get(titleName).isEmpty()) {
  93. titles.add(it.toString());
  94. } else {
  95. titles.add(mapMap.get(it.toString()).get("comment").toString());
  96. }
  97. });
  98. return titles;
  99. }
  100. /**
  101. * 拼接字段
  102. */
  103. public static String joinAllFiled(Map<String, Map<String, Object>> mapMap) {
  104. StringBuilder sb = new StringBuilder();
  105. mapMap.forEach((k, v) -> sb.append(v.get("filed")).append(","));
  106. return sb.deleteCharAt(sb.length() - 1).toString();
  107. }
  108. /**
  109. * 获取字段名称JSON
  110. */
  111. public static List<JSONObject> getFieldsNames(Map<String, Map<String, Object>> mapMap) {
  112. List<JSONObject> list = new ArrayList<>();
  113. mapMap.forEach((k, v) -> {
  114. JSONObject jsonObject = new JSONObject();
  115. jsonObject.put("code",k);
  116. jsonObject.put("name", v.get("comment"));
  117. list.add(jsonObject);
  118. });
  119. return list;
  120. }
  121. }