Skip to content

Commit df2eb85

Browse files
authored
Added new mode XmlToJsonMode.REPLACE_EMPTY_TAG_WITH_NULL_AND_MINUS_WITH_AT
1 parent d2ecc79 commit df2eb85

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/main/java/com/github/underscore/U.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ public enum XmlToJsonMode {
141141
REPLACE_EMPTY_TAG_WITH_STRING,
142142
REMOVE_FIRST_LEVEL,
143143
WITHOUT_NAMESPACES,
144-
REPLACE_MINUS_WITH_AT
144+
REPLACE_MINUS_WITH_AT,
145+
REPLACE_EMPTY_TAG_WITH_NULL_AND_MINUS_WITH_AT
145146
}
146147

147148
public enum JsonToXmlMode {
@@ -2701,6 +2702,13 @@ public static String xmlToJson(
27012702
result = Json.toJson(replaceEmptyValueWithNull((Map) object), identStep);
27022703
} else if (mode == XmlToJsonMode.REPLACE_MINUS_WITH_AT) {
27032704
result = Json.toJson(replaceMinusWithAt((Map) object), identStep);
2705+
} else if (mode == XmlToJsonMode.REPLACE_EMPTY_TAG_WITH_NULL_AND_MINUS_WITH_AT) {
2706+
result =
2707+
Json.toJson(
2708+
replaceMinusWithAt(
2709+
replaceEmptyValueWithNull(
2710+
replaceSelfClosingWithNull((Map) object))),
2711+
identStep);
27042712
} else if (mode == XmlToJsonMode.REPLACE_EMPTY_TAG_WITH_NULL) {
27052713
result =
27062714
Json.toJson(
@@ -2978,6 +2986,9 @@ private static Object makeObjectSelfClose(Object value, String newValue) {
29782986
}
29792987

29802988
public static Map<String, Object> replaceMinusWithAt(Map<String, Object> map) {
2989+
if (map == null) {
2990+
return null;
2991+
}
29812992
Map<String, Object> outMap = new LinkedHashMap<>();
29822993
for (Map.Entry<String, Object> entry : map.entrySet()) {
29832994
outMap.put(

src/test/java/com/github/underscore/LodashTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,10 @@ void xmpToJson3() {
981981
list2.add(new ArrayList<Object>());
982982
map3.put("list", list2);
983983
U.replaceMinusWithAt(map3);
984+
U.replaceMinusWithAt(null);
985+
U.xmlToJson(
986+
"<a c=\"1\"><b></b><b></b></a>",
987+
U.XmlToJsonMode.REPLACE_EMPTY_TAG_WITH_NULL_AND_MINUS_WITH_AT);
984988
}
985989

986990
@Test

0 commit comments

Comments
 (0)