Skip to content

Commit ab99a01

Browse files
authored
Improved json to xml without attributes.
1 parent 969f11f commit ab99a01

File tree

2 files changed

+28
-9
lines changed

2 files changed

+28
-9
lines changed

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,12 +3070,19 @@ private static Object makeReplaceNumberAndBoolean(Object value) {
30703070
if (value instanceof List) {
30713071
List<Object> values = newArrayList();
30723072
for (Object item : (List) value) {
3073-
values.add(
3074-
item instanceof Map ? replaceNumberAndBooleanWithString((Map) item) : item);
3073+
if (item instanceof Map) {
3074+
values.add(replaceNumberAndBooleanWithString((Map) item));
3075+
} else if (item instanceof Number || item instanceof Boolean || isNull(item)) {
3076+
values.add(String.valueOf(item));
3077+
} else {
3078+
values.add(item);
3079+
}
30753080
}
30763081
result = values;
30773082
} else if (value instanceof Map) {
30783083
result = replaceNumberAndBooleanWithString((Map) value);
3084+
} else if (isNull(value)) {
3085+
result = "null";
30793086
} else {
30803087
result = value;
30813088
}

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

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,21 +1092,33 @@ void forceRemoveArrayTrue() {
10921092
void forceRemoveArrayTrueBooleanAndNumber() {
10931093
assertEquals(
10941094
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
1095-
+ "<data>\n"
1096-
+ " <a>b</a>\n"
1097-
+ " <c>true</c>\n"
1098-
+ " <d>1</d>\n"
1099-
+ " <e></e>\n"
1100-
+ "</data>",
1095+
+ "<root>\n"
1096+
+ " <data>\n"
1097+
+ " <a>b</a>\n"
1098+
+ " <c>true</c>\n"
1099+
+ " <d>1</d>\n"
1100+
+ " <e></e>\n"
1101+
+ " <f>null</f>\n"
1102+
+ " </data>\n"
1103+
+ " <data2>true</data2>\n"
1104+
+ " <data2>1</data2>\n"
1105+
+ " <data2>null</data2>\n"
1106+
+ "</root>",
11011107
U.jsonToXml(
11021108
"{\n"
11031109
+ " \"data\": [\n"
11041110
+ " {\n"
11051111
+ " \"a\": \"b\",\n"
11061112
+ " \"c\": true,\n"
11071113
+ " \"d\": 1,\n"
1108-
+ " \"e\": {}\n"
1114+
+ " \"e\": {},\n"
1115+
+ " \"f\": null\n"
11091116
+ " }\n"
1117+
+ " ],\n"
1118+
+ " \"data2\": [\n"
1119+
+ " true,\n"
1120+
+ " 1,\n"
1121+
+ " null\n"
11101122
+ " ]\n"
11111123
+ "}",
11121124
U.Mode.FORCE_REMOVE_ARRAY_BOOLEAN_NUMBER_ATTRIBUTES_JSON_TO_XML));

0 commit comments

Comments
 (0)