Skip to content

Commit 12b75c4

Browse files
XML.toString(array)
1 parent a1fcffe commit 12b75c4

File tree

2 files changed

+17
-23
lines changed

2 files changed

+17
-23
lines changed

Test.java

+1
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ public void testJSON() throws Exception {
465465
int ar[] = {1, 2, 3};
466466
JSONArray ja = new JSONArray(ar);
467467
assertEquals("[1,2,3]", ja.toString());
468+
assertEquals("<array>1</array><array>2</array><array>3</array>", XML.toString(ar));
468469

469470
String sa[] = {"aString", "aNumber", "aBoolean"};
470471
jsonobject = new JSONObject(beanie, sa);

XML.java

+16-23
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ of this software and associated documentation files (the "Software"), to deal
2424
SOFTWARE.
2525
*/
2626

27-
import java.lang.reflect.Array;
2827
import java.util.Iterator;
2928

3029

@@ -460,17 +459,6 @@ public static String toString(Object object, String tagName)
460459
sb.append(toString(value, key));
461460
}
462461
}
463-
} else if (value.getClass().isArray()) {
464-
length = Array.getLength(value);
465-
for (i = 0; i < length; i += 1) {
466-
sb.append('<');
467-
sb.append(key);
468-
sb.append('>');
469-
sb.append(Array.get(value, i).toString());
470-
sb.append("</");
471-
sb.append(key);
472-
sb.append('>');
473-
}
474462
} else if (value.equals("")) {
475463
sb.append('<');
476464
sb.append(key);
@@ -495,18 +483,23 @@ public static String toString(Object object, String tagName)
495483
// XML does not have good support for arrays. If an array appears in a place
496484
// where XML is lacking, synthesize an <array> element.
497485

498-
} else if (object instanceof JSONArray) {
499-
ja = (JSONArray)object;
500-
length = ja.length();
501-
for (i = 0; i < length; i += 1) {
502-
sb.append(toString(ja.opt(i), tagName == null ? "array" : tagName));
503-
}
504-
return sb.toString();
505486
} else {
506-
string = (object == null) ? "null" : escape(object.toString());
507-
return (tagName == null) ? "\"" + string + "\"" :
508-
(string.length() == 0) ? "<" + tagName + "/>" :
509-
"<" + tagName + ">" + string + "</" + tagName + ">";
487+
if (object.getClass().isArray()) {
488+
object = new JSONArray(object);
489+
}
490+
if (object instanceof JSONArray) {
491+
ja = (JSONArray)object;
492+
length = ja.length();
493+
for (i = 0; i < length; i += 1) {
494+
sb.append(toString(ja.opt(i), tagName == null ? "array" : tagName));
495+
}
496+
return sb.toString();
497+
} else {
498+
string = (object == null) ? "null" : escape(object.toString());
499+
return (tagName == null) ? "\"" + string + "\"" :
500+
(string.length() == 0) ? "<" + tagName + "/>" :
501+
"<" + tagName + ">" + string + "</" + tagName + ">";
502+
}
510503
}
511504
}
512505
}

0 commit comments

Comments
 (0)