ソースを参照

添加 setSkipNullValueField(boolean)

James 5 年 前
コミット
3a014be583
1 ファイル変更21 行追加6 行削除
  1. 21 6
      src/main/java/com/jfinal/json/JFinalJsonKit.java

+ 21 - 6
src/main/java/com/jfinal/json/JFinalJsonKit.java

@@ -308,14 +308,19 @@ public class JFinalJsonKit {
 		boolean first = true;
 		boolean first = true;
 		ret.addChar('{');
 		ret.addChar('{');
 		while (iter.hasNext()) {
 		while (iter.hasNext()) {
+			Map.Entry<String, Object> entry = (Map.Entry)iter.next();
+			Object value = entry.getValue();
+			
+			if (value == null && skipNullValueField) {
+				continue ;
+			}
+			
 			if (first) {
 			if (first) {
 				first = false;
 				first = false;
 			} else {
 			} else {
 				ret.addChar(',');
 				ret.addChar(',');
 			}
 			}
 			
 			
-			Map.Entry<String, Object> entry = (Map.Entry)iter.next();
-			
 			String fieldName = entry.getKey();
 			String fieldName = entry.getKey();
 			if (modelAndRecordFieldNameConverter != null) {
 			if (modelAndRecordFieldNameConverter != null) {
 				fieldName = modelAndRecordFieldNameConverter.apply(fieldName);
 				fieldName = modelAndRecordFieldNameConverter.apply(fieldName);
@@ -324,7 +329,6 @@ public class JFinalJsonKit {
 			
 			
 			ret.addChar(':');
 			ret.addChar(':');
 			
 			
-			Object value = entry.getValue();
 			if (value != null) {
 			if (value != null) {
 				ToJson tj = me.getToJson(value);
 				ToJson tj = me.getToJson(value);
 				tj.toJson(value, depth, ret);
 				tj.toJson(value, depth, ret);
@@ -350,17 +354,23 @@ public class JFinalJsonKit {
 		boolean first = true;
 		boolean first = true;
 		ret.addChar('{');
 		ret.addChar('{');
 		while (iter.hasNext()) {
 		while (iter.hasNext()) {
+			Map.Entry entry = (Map.Entry)iter.next();
+			Object value = entry.getValue();
+			
+			if (value == null && skipNullValueField) {
+				continue ;
+			}
+			
 			if (first) {
 			if (first) {
 				first = false;
 				first = false;
 			} else {
 			} else {
 				ret.addChar(',');
 				ret.addChar(',');
 			}
 			}
 			
 			
-			Map.Entry entry = (Map.Entry)iter.next();
 			ret.addMapKey(entry.getKey());
 			ret.addMapKey(entry.getKey());
 			ret.addChar(':');
 			ret.addChar(':');
 			
 			
-			Object value = entry.getValue();
+			
 			if (value != null) {
 			if (value != null) {
 				ToJson tj = me.getToJson(value);
 				ToJson tj = me.getToJson(value);
 				tj.toJson(value, depth, ret);
 				tj.toJson(value, depth, ret);
@@ -482,6 +492,12 @@ public class JFinalJsonKit {
 			try {
 			try {
 				ret.addChar('{');
 				ret.addChar('{');
 				for (int i = 0; i < fields.length; i++) {
 				for (int i = 0; i < fields.length; i++) {
+					Object value = methods[i].invoke(bean, NULL_ARGS);
+					
+					if (value == null && skipNullValueField) {
+						continue ;
+					}
+					
 					if (i > 0) {
 					if (i > 0) {
 						ret.addChar(',');
 						ret.addChar(',');
 					}
 					}
@@ -489,7 +505,6 @@ public class JFinalJsonKit {
 					ret.addStrNoEscape(fields[i]);
 					ret.addStrNoEscape(fields[i]);
 					ret.addChar(':');
 					ret.addChar(':');
 					
 					
-					Object value = methods[i].invoke(bean, NULL_ARGS);
 					if (value != null) {
 					if (value != null) {
 						ToJson tj = me.getToJson(value);
 						ToJson tj = me.getToJson(value);
 						tj.toJson(value, depth, ret);
 						tj.toJson(value, depth, ret);