赞
踩
import java.io.File; import java.io.IOException; import java.io.StringReader; import java.nio.charset.StandardCharsets; import java.util.LinkedList; import java.util.List; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; import com.google.gson.stream.JsonReader; public class JsonUtils { private static Gson gson = new GsonBuilder().serializeNulls().create(); private static final Logger logger = LoggerFactory.getLogger(JsonUtils.class); private static MflexConfigBean mflexConfigBean; private JsonUtils() { } /** * 将对象转换为Json字符串 * * @param <T> * 转换对象的类 * @param 要转换的对象 * @return 转换后的字符串 */ public static <T> String toJsonString(T json) { return gson.toJson(json); } /** * 将对象转换为Json字符串数组 * * @param <T> * 转换对象的类 * @param 要转换的对象 * @return 转换后的字符串 */ public static <T> String toJsonArray(T json) { return gson.toJsonTree(json).getAsJsonArray().toString(); } public static <T> T fromJson(String jsonString, Class<T> classOfT) { return gson.fromJson(jsonString, classOfT); } public static <T> List<T> listFromJson(String jsonString, Class<T> classOfT) { List<T> list = new LinkedList<>(); JsonArray jsonArray = parseString(jsonString).getAsJsonArray(); for (JsonElement jsonElement : jsonArray) { list.add(gson.fromJson(jsonElement, classOfT)); } return list; } private static JsonElement parseString(String jsonString) { JsonParser parser = new JsonParser(); JsonReader reader = new JsonReader(new StringReader(jsonString)); reader.setLenient(true); return parser.parse(reader); } public static MflexConfigBean getConfigBean() throws IOException { if (mflexConfigBean == null ) { String root = System.getProperty("user.dir"); String readFileToString = FileUtils.readFileToString(new File(root, "application-mflex.json"), StandardCharsets.UTF_8); try { mflexConfigBean = gson.fromJson(readFileToString, MflexConfigBean.class); } catch (JsonSyntaxException e) { logger.error("json字符串转对象失败,被转换的json字符串为:{}, 失败信息:", readFileToString, e); } } return mflexConfigBean; } public static void main(String[] args) throws IOException { // System.out.println(getConfigBean().toString()); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。