From 139629633762351ee7d9b884d168da5c53a4d03b Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Fri, 29 Mar 2019 11:51:19 +0800 Subject: [PATCH] --- .../redkale/convert/StringConvertWrapper.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/org/redkale/convert/StringConvertWrapper.java b/src/org/redkale/convert/StringConvertWrapper.java index e703a00d1..d6f5e0810 100644 --- a/src/org/redkale/convert/StringConvertWrapper.java +++ b/src/org/redkale/convert/StringConvertWrapper.java @@ -5,19 +5,21 @@ */ package org.redkale.convert; +import org.redkale.convert.json.JsonConvert; + /** * 序列化去掉引号的String对象。 *
- * 场景: JavaBean a = ... ;
+ * 场景: JavaBean bean = ... ;
* Map map = new HashMap();
* map.put("bean", a);
* records.add(map);
- * records需要在后期序列化写入库。 但是在这期间a的内部字段值可能就变化了,会导致入库时并不是records.add的快照信息。
+ * records需要在后期序列化写入库。 但是在这期间bean的内部字段值可能就变化了,会导致入库时并不是records.add的快照信息。
* 所以需要使用StringConvertWrapper:
* Map map = new HashMap();
- * map.put("bean", new StringConvertWrapper(a.toString()));
+ * map.put("bean", new StringConvertWrapper(bean.toString()));
* records.add(map);
- * 这样序列化写库时不需要在bean的值上面多一层引号。
+ * 这样既可以保持快照又不会在bean的值上面多一层引号。
*
* * 详情见: https://redkale.org @@ -35,8 +37,10 @@ public class StringConvertWrapper { this.value = value; } - public static StringConvertWrapper create(String value) { - return new StringConvertWrapper(value); + public static StringConvertWrapper create(Object value) { + if (value == null) return new StringConvertWrapper(null); + if (value instanceof String) return new StringConvertWrapper((String) value); + return new StringConvertWrapper(JsonConvert.root().convertTo(value)); } public String getValue() {