浏览代码

添加 setSkipNullValueField(boolean) 配置

James 5 年之前
父节点
当前提交
8c5575a392
共有 2 个文件被更改,包括 15 次插入0 次删除
  1. 8 0
      src/main/java/com/jfinal/json/JFinalJson.java
  2. 7 0
      src/main/java/com/jfinal/json/JFinalJsonKit.java

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

@@ -174,6 +174,14 @@ public class JFinalJson extends Json {
 		JFinalJsonKit.setToJsonFactory(toJsonFactory);
 	}
 	
+	/**
+	 * 是否跳过 null 值的字段,配置为 true 值将跳过,默认值为 false
+	 * 本配置作用于 Model、Record、Map、java bean(getter 方法对应的属性) 这四种类型
+	 */
+	public static void setSkipNullValueField(boolean skipNullValueField) {
+		JFinalJsonKit.setSkipNullValueField(skipNullValueField);
+	}
+	
 	public <T> T parse(String jsonString, Class<T> type) {
 		throw new RuntimeException("jfinal " + com.jfinal.core.Const.JFINAL_VERSION + 
 		"默认 json 实现暂不支持 json 到 object 的转换,建议使用 active recrord 的 Generator 生成 base model," +

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

@@ -55,6 +55,9 @@ public class JFinalJsonKit {
 	// 将 Model 当成 Bean 只对 getter 方法进行转换
 	protected static boolean treatModelAsBean = false;
 	
+	// 是否跳过 null 值的字段,不对其进行转换
+	protected static boolean skipNullValueField = false;
+	
 	// 对 Model 和 Record 的字段名进行转换的函数。例如转成驼峰形式对 oracle 支持更友好
 	protected static Function<String, String> modelAndRecordFieldNameConverter = null;
 	
@@ -777,6 +780,10 @@ public class JFinalJsonKit {
 	public static void setToJsonFactory(Function<Object, ToJson<?>> toJsonFactory) {
 		JFinalJsonKit.toJsonFactory = toJsonFactory;
 	}
+	
+	public static void setSkipNullValueField(boolean skipNullValueField) {
+		JFinalJsonKit.skipNullValueField = skipNullValueField;
+	}
 }