diff --git a/src/main/java/org/redkale/convert/json/JsonArray.java b/src/main/java/org/redkale/convert/json/JsonArray.java index 8dcde5fd4..4ed2ae123 100644 --- a/src/main/java/org/redkale/convert/json/JsonArray.java +++ b/src/main/java/org/redkale/convert/json/JsonArray.java @@ -38,7 +38,7 @@ public class JsonArray extends ArrayList implements JsonEntity { return convertFrom(text, 0, text.length); } - public static JsonArray convertFrom(char[] text, final int offset, final int length) { + public static JsonArray convertFrom(char[] text, int offset, int length) { return (JsonArray) JsonEntityDecoder.instance.convertFrom(new JsonReader(text, offset, length)); } diff --git a/src/main/java/org/redkale/convert/json/JsonObject.java b/src/main/java/org/redkale/convert/json/JsonObject.java index ed951a7d5..2d10a18e3 100644 --- a/src/main/java/org/redkale/convert/json/JsonObject.java +++ b/src/main/java/org/redkale/convert/json/JsonObject.java @@ -34,12 +34,21 @@ public class JsonObject extends LinkedHashMap implements JsonEnt return convertFrom(text, 0, text.length); } - public static JsonObject convertFrom(char[] text, final int offset, final int length) { + public static JsonObject convertFrom(char[] text, int offset, int length) { return (JsonObject) JsonEntityDecoder.instance.convertFrom(new JsonReader(text, offset, length)); } - public static JsonObject of(Object javaBean) { - return convertFrom(JsonConvert.root().convertTo(javaBean)); + public static JsonObject of(Object bean) { + if (bean instanceof CharSequence) { + return convertFrom(bean.toString()); + } + if (bean instanceof JsonObject) { + return (JsonObject) bean; + } + if (bean instanceof Map) { + return new JsonObject((Map) bean); + } + return convertFrom(JsonConvert.root().convertTo(bean)); } public JsonObject append(String key, Object value) { @@ -47,6 +56,11 @@ public class JsonObject extends LinkedHashMap implements JsonEnt return this; } + public JsonObject append(String key, Collection value) { + super.put(key, value == null || value instanceof JsonArray ? value : new JsonArray(value)); + return this; + } + public JsonObject putObject(String key) { JsonObject val = new JsonObject(); super.put(key, val); diff --git a/src/main/java/org/redkale/convert/json/JsonString.java b/src/main/java/org/redkale/convert/json/JsonString.java index 75e171ada..6dfe51fda 100644 --- a/src/main/java/org/redkale/convert/json/JsonString.java +++ b/src/main/java/org/redkale/convert/json/JsonString.java @@ -55,7 +55,7 @@ public class JsonString implements CharSequence, JsonEntity, Comparable