From 7c257af454b930c12db86701e008f194e03ecf20 Mon Sep 17 00:00:00 2001 From: FrozenCow Date: Sun, 6 Feb 2011 02:00:27 +0100 Subject: [PATCH] Fixed Json stringify. --- src/main/java/org/dynmap/web/Json.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/dynmap/web/Json.java b/src/main/java/org/dynmap/web/Json.java index 43a6b003..67aa8924 100644 --- a/src/main/java/org/dynmap/web/Json.java +++ b/src/main/java/org/dynmap/web/Json.java @@ -1,5 +1,6 @@ package org.dynmap.web; +import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.LinkedHashMap; @@ -35,13 +36,25 @@ public class Json { } else if (o instanceof List) { List l = (List) o; StringBuilder sb = new StringBuilder(); + sb.append("["); int count = 0; for (int i = 0; i < l.size(); i++) { - sb.append(count++ == 0 ? "[" : ","); + if (count++ > 0) sb.append(","); sb.append(stringifyJson(l.get(i))); } sb.append("]"); return sb.toString(); + } else if (o.getClass().isArray()) { + int length = Array.getLength(o); + StringBuilder sb = new StringBuilder(); + sb.append("["); + int count = 0; + for (int i = 0; i < length; i++) { + if (count++ > 0) sb.append(","); + sb.append(stringifyJson(Array.get(o, i))); + } + sb.append("]"); + return sb.toString(); } else if (o instanceof Object) /* TODO: Always true, maybe interface? */ { StringBuilder sb = new StringBuilder(); sb.append("{");