Browse Source

添加 addToJson,支持定制任意类型转换规则

James 5 years ago
parent
commit
7d2c914b95

+ 7 - 0
src/main/java/com/jfinal/json/JFinalJson.java

@@ -73,6 +73,13 @@ public class JFinalJson extends Json {
 	}
 	
 	/**
+	 * 添加 ToJson 转换接口实现类,自由定制任意类型数据的转换规则
+	 */
+	public static void addToJson(Class<?> type, ToJson<?> toJson) {
+		JFinalJsonKit.addToJson(type, toJson);
+	}
+	
+	/**
 	 * 设置全局性默认转换深度
 	 */
 	public static void setDefaultConvertDepth(int defaultConvertDepth) {

+ 10 - 0
src/main/java/com/jfinal/json/JFinalJsonKit.java

@@ -30,6 +30,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.function.Function;
 import com.jfinal.kit.StrKit;
 import com.jfinal.kit.SyncWriteMap;
@@ -70,6 +71,15 @@ public class JFinalJsonKit {
 		return ret;
 	}
 	
+	/**
+	 * 添加 ToJson 转换接口实现类,自由定制任意类型数据的转换规则
+	 */
+	public static void addToJson(Class<?> type, ToJson<?> toJson) {
+		Objects.requireNonNull(type, "type can not be null");
+		Objects.requireNonNull(toJson, "toJson can not be null");
+		map.put(type, toJson);
+	}
+	
 	protected ToJson<?> createToJson(Object value) {
 		// 基础类型 -----------------------------------------
 		if (value instanceof String) {