diff --git a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingSerializable.java b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingSerializable.java index c4e4da14684..b1de45bf97c 100644 --- a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingSerializable.java +++ b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingSerializable.java @@ -30,8 +30,7 @@ public static byte[] encode(final Object obj) { if (obj == null) { return null; } - final String json = toJson(obj, false); - return json.getBytes(CHARSET_UTF8); + return JSON.toJSONBytes(obj, CHARSET_UTF8); } public static String toJson(final Object obj, boolean prettyFormat) { @@ -45,31 +44,22 @@ public static T decode(final byte[] data, Class classOfT) { if (data == null) { return null; } - return fromJson(data, classOfT); + return JSON.parseObject(data, classOfT); } public static List decodeList(final byte[] data, Class classOfT) { if (data == null) { return null; } - String json = new String(data, CHARSET_UTF8); - return JSON.parseArray(json, classOfT); + return JSON.parseArray(data, 0, data.length, CHARSET_UTF8, classOfT); } public static T fromJson(String json, Class classOfT) { return JSON.parseObject(json, classOfT); } - private static T fromJson(byte[] data, Class classOfT) { - return JSON.parseObject(data, classOfT); - } - public byte[] encode() { - final String json = this.toJson(); - if (json != null) { - return json.getBytes(CHARSET_UTF8); - } - return null; + return JSON.toJSONBytes(this, CHARSET_UTF8); } /** @@ -79,8 +69,7 @@ public byte[] encode() { * @return serialized data. */ public byte[] encode(JSONWriter.Feature... features) { - final String json = JSON.toJSONString(this, features); - return json.getBytes(CHARSET_UTF8); + return JSON.toJSONBytes(this, CHARSET_UTF8, features); } public String toJson() { @@ -90,4 +79,4 @@ public String toJson() { public String toJson(final boolean prettyFormat) { return toJson(this, prettyFormat); } -} +} \ No newline at end of file