diff --git a/Test.java b/Test.java
index b4a46ab..02ad3c1 100755
--- a/Test.java
+++ b/Test.java
@@ -465,6 +465,7 @@ public class Test extends TestCase {
int ar[] = {1, 2, 3};
JSONArray ja = new JSONArray(ar);
assertEquals("[1,2,3]", ja.toString());
+ assertEquals("123", XML.toString(ar));
String sa[] = {"aString", "aNumber", "aBoolean"};
jsonobject = new JSONObject(beanie, sa);
diff --git a/XML.java b/XML.java
index 22acfb2..cd033e1 100755
--- a/XML.java
+++ b/XML.java
@@ -24,7 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
-import java.lang.reflect.Array;
import java.util.Iterator;
@@ -460,17 +459,6 @@ public class XML {
sb.append(toString(value, key));
}
}
- } else if (value.getClass().isArray()) {
- length = Array.getLength(value);
- for (i = 0; i < length; i += 1) {
- sb.append('<');
- sb.append(key);
- sb.append('>');
- sb.append(Array.get(value, i).toString());
- sb.append("");
- sb.append(key);
- sb.append('>');
- }
} else if (value.equals("")) {
sb.append('<');
sb.append(key);
@@ -495,18 +483,23 @@ public class XML {
// XML does not have good support for arrays. If an array appears in a place
// where XML is lacking, synthesize an element.
- } else if (object instanceof JSONArray) {
- ja = (JSONArray)object;
- length = ja.length();
- for (i = 0; i < length; i += 1) {
- sb.append(toString(ja.opt(i), tagName == null ? "array" : tagName));
- }
- return sb.toString();
} else {
- string = (object == null) ? "null" : escape(object.toString());
- return (tagName == null) ? "\"" + string + "\"" :
- (string.length() == 0) ? "<" + tagName + "/>" :
- "<" + tagName + ">" + string + "" + tagName + ">";
+ if (object.getClass().isArray()) {
+ object = new JSONArray(object);
+ }
+ if (object instanceof JSONArray) {
+ ja = (JSONArray)object;
+ length = ja.length();
+ for (i = 0; i < length; i += 1) {
+ sb.append(toString(ja.opt(i), tagName == null ? "array" : tagName));
+ }
+ return sb.toString();
+ } else {
+ string = (object == null) ? "null" : escape(object.toString());
+ return (tagName == null) ? "\"" + string + "\"" :
+ (string.length() == 0) ? "<" + tagName + "/>" :
+ "<" + tagName + ">" + string + "" + tagName + ">";
+ }
}
}
}
\ No newline at end of file