diff --git a/src/org/redkale/convert/json/JsonByteBufferWriter.java b/src/org/redkale/convert/json/JsonByteBufferWriter.java index 4b56da301..6d7d57cf0 100644 --- a/src/org/redkale/convert/json/JsonByteBufferWriter.java +++ b/src/org/redkale/convert/json/JsonByteBufferWriter.java @@ -106,6 +106,28 @@ public class JsonByteBufferWriter extends JsonWriter { this.buffers[index].put((byte) ch); } + @Override + public void writeSmallString(String value) { + byte[] bs = Utility.byteArray(value); + int expandsize = expand(bs.length + 2); + if (expandsize == 0) {// 只需要一个buffer + final ByteBuffer buffer = this.buffers[index]; + buffer.put((byte) '"'); + buffer.put(bs); + buffer.put((byte) '"'); + } else { + ByteBuffer buffer = this.buffers[index]; + if (!buffer.hasRemaining()) buffer = nextByteBuffer(); + buffer.put((byte) '"'); + for (byte b : bs) { + if (!buffer.hasRemaining()) buffer = nextByteBuffer(); + buffer.put(b); + } + if (!buffer.hasRemaining()) buffer = nextByteBuffer(); + buffer.put((byte) '"'); + } + } + @Override public void writeTo(final char[] chs, final int start, final int len) { writeTo(-1, false, chs, start, len); diff --git a/src/org/redkale/convert/json/JsonWriter.java b/src/org/redkale/convert/json/JsonWriter.java index fcc70b0f9..a5761cd3f 100644 --- a/src/org/redkale/convert/json/JsonWriter.java +++ b/src/org/redkale/convert/json/JsonWriter.java @@ -162,12 +162,12 @@ public class JsonWriter extends Writer { @Override public final void writeFieldName(String fieldName, Type fieldType, int fieldPos) { if (this.comma) writeTo(','); - writeTo(true, fieldName); + writeSmallString(fieldName); writeTo(':'); } @Override - public final void writeSmallString(String value) { + public void writeSmallString(String value) { writeTo(true, value); }