This commit is contained in:
redkale
2024-10-17 12:30:11 +08:00
parent 57686cf221
commit 4f6ca16ca6
9 changed files with 30 additions and 71 deletions

View File

@@ -9,7 +9,6 @@ import java.nio.*;
import java.nio.charset.Charset;
import java.util.Objects;
import java.util.function.Supplier;
import org.redkale.convert.ConvertException;
import org.redkale.convert.Encodeable;
import org.redkale.util.*;
@@ -113,20 +112,6 @@ public class JsonByteBufferWriter extends JsonWriter {
return size;
}
@Override
public void writeTo(final char ch) {
if (ch > Byte.MAX_VALUE) {
throw new ConvertException("writeTo char(int.value = " + (int) ch + ") must be less 127");
}
expand(1);
this.buffers[currBufIndex].put((byte) ch);
}
@Override
public void writeTo(final char[] chs, final int start, final int len) {
writeTo(-1, false, chs, start, len);
}
@Override
public void writeTo(final byte ch) { // 只能是 0 - 127 的字符
expand(1);

View File

@@ -129,21 +129,6 @@ public class JsonBytesWriter extends JsonWriter implements ByteTuple {
}
}
@Override
public void writeTo(final char ch) { // 只能是 0 - 127 的字符
expand(1);
content[count++] = (byte) ch;
}
@Override
public void writeTo(final char[] chs, final int start, final int len) { // 只能是 0 - 127 的字符
expand(len);
for (int i = 0; i < len; i++) {
content[count + i] = (byte) chs[start + i];
}
count += len;
}
@Override
public void writeTo(final byte ch) { // 只能是 0 - 127 的字符
expand(1);

View File

@@ -4,7 +4,10 @@
*/
package org.redkale.convert.json;
import java.lang.reflect.Type;
import org.redkale.convert.EnMember;
import org.redkale.convert.Encodeable;
import static org.redkale.convert.json.JsonWriter.BYTE_COLON;
import static org.redkale.convert.json.JsonWriter.BYTE_COMMA;
import static org.redkale.convert.json.JsonWriter.BYTE_DQUOTE;
import static org.redkale.convert.json.JsonWriter.DEFAULT_SIZE;
@@ -87,13 +90,11 @@ public class JsonCharsWriter extends JsonWriter {
return true;
}
@Override
public void writeTo(final char ch) { // 只能是 0 - 127 的字符
expand(1);
content[count++] = ch;
}
@Override
public void writeTo(final char[] chs, final int start, final int len) { // 只能是 0 - 127 的字符
expand(len);
System.arraycopy(chs, start, content, count, len);
@@ -115,6 +116,19 @@ public class JsonCharsWriter extends JsonWriter {
count += len;
}
@Override // 只容许JsonBytesWriter重写此方法
public final void writeField(EnMember member, String fieldName, Type fieldType, int fieldPos) {
if (this.comma) {
writeTo(BYTE_COMMA);
}
if (member != null) {
writeTo(member.getJsonFieldNameChars());
} else {
writeLatin1To(true, fieldName);
writeTo(BYTE_COLON);
}
}
/**
* <b>注意:</b> 该String值不能为null且不会进行转义 只用于不含需要转义字符的字符串例如enum、double、BigInteger、BigDecimal转换的String
*
@@ -305,6 +319,10 @@ public class JsonCharsWriter extends JsonWriter {
return this.count;
}
public final void writeTo(final char... cs) { // 只能是 0 - 127 的字符
writeTo(cs, 0, cs.length);
}
@Override
public final void writeNull() {
writeTo(CHARS_NULL);

View File

@@ -45,18 +45,6 @@ class JsonStreamWriter extends JsonByteBufferWriter {
}
}
@Override
public void writeTo(final char ch) {
if (ch > Byte.MAX_VALUE) {
throw new ConvertException("writeTo char(int.value = " + (int) ch + ") must be less 127");
}
try {
out.write((byte) ch);
} catch (IOException e) {
throw new ConvertException(e);
}
}
@Override
public void writeTo(final byte[] bs, final int start, final int len) { // 只能是 0 - 127 的字符
try {
@@ -66,11 +54,6 @@ class JsonStreamWriter extends JsonByteBufferWriter {
}
}
@Override
public void writeTo(final char[] chs, final int start, final int len) {
writeTo(false, chs, start, len);
}
private void writeTo(final boolean quote, final char[] chs, final int start, final int len) {
try {
if (quote) {

View File

@@ -57,10 +57,6 @@ public abstract class JsonWriter extends Writer {
}
// -----------------------------------------------------------------------
public abstract void writeTo(final char ch); // 只能是 0 - 127 的字符
public abstract void writeTo(final char[] cs, final int start, final int len); // 只能是 0 - 127 的字符
public abstract void writeTo(final byte ch); // 只能是 0 - 127 的字符
public abstract void writeTo(final byte[] bs, final int start, final int len); // 只能是 0 - 127 的字符
@@ -252,18 +248,13 @@ public abstract class JsonWriter extends Writer {
writeLatin1To(true, value);
}
@Override // 只容许JsonBytesWriter重写此方法
@Override // 只容许JsonCharsWriter重写此方法
public void writeField(EnMember member, String fieldName, Type fieldType, int fieldPos) {
if (this.comma) {
writeTo(BYTE_COMMA);
}
if (member != null) {
if (charsMode()) {
char[] chs = member.getJsonFieldNameChars();
writeTo(chs, 0, chs.length);
} else {
writeTo(member.getJsonFieldNameBytes());
}
writeTo(member.getJsonFieldNameBytes());
} else {
writeLatin1To(true, fieldName);
writeTo(BYTE_COLON);
@@ -271,9 +262,6 @@ public abstract class JsonWriter extends Writer {
}
// ----------------------------------------------------------------------------------------------
public final void writeTo(final char... cs) { // 只能是 0 - 127 的字符
writeTo(cs, 0, cs.length);
}
public final void writeTo(final byte[] bs) { // 只能是 0 - 127 的字符
writeTo(bs, 0, bs.length);

View File

@@ -30,12 +30,12 @@ public class _DyncFortuneJsonEncoder extends JsonDynEncoder<Fortune> {
objectEncoderSelf.convertTo(out, value);
return;
}
out.writeTo('{');
out.writeTo((byte) '{');
if (out.charsMode()) {
out.writeFieldIntValue(idFieldChars, false, value.getId());
} else {
out.writeFieldIntValue(idFieldBytes, false, value.getId());
}
out.writeTo('}');
out.writeTo((byte) '}');
}
}

View File

@@ -30,12 +30,12 @@ public class _DyncMessageJsonEncoder extends JsonDynEncoder<Message> {
objectEncoderSelf.convertTo(out, value);
return;
}
out.writeTo('{');
out.writeTo((byte) '{');
if (out.charsMode()) {
out.writeFieldStandardStringValue(messageFieldChars, false, value.getMessage());
} else {
out.writeFieldStandardStringValue(messageFieldBytes, false, value.getMessage());
}
out.writeTo('}');
out.writeTo((byte) '}');
}
}

View File

@@ -44,7 +44,7 @@ public class _DyncUserJsonEncoder extends JsonDynEncoder<User> {
this.objectEncoderSelf.convertTo(out, value);
return;
}
out.writeTo('{');
out.writeTo((byte) '{');
boolean comma = false;
if (out.charsMode()) {
comma = out.writeFieldIntValue(ageFieldChars, comma, value.getAge());
@@ -63,6 +63,6 @@ public class _DyncUserJsonEncoder extends JsonDynEncoder<User> {
comma = out.writeFieldStringValue(sexFieldBytes, comma, value.getSex());
out.writeFieldStringValue(nickNameFieldBytes, comma, value.getNickName());
}
out.writeTo('}');
out.writeTo((byte) '}');
}
}

View File

@@ -32,7 +32,7 @@ public class _DyncWorldJsonEncoder extends JsonDynEncoder<World> {
return;
}
out.writeTo('{');
out.writeTo((byte) '{');
boolean comma = false;
if (out.charsMode()) {
comma = out.writeFieldIntValue(idFieldChars, comma, value.getId());
@@ -41,6 +41,6 @@ public class _DyncWorldJsonEncoder extends JsonDynEncoder<World> {
comma = out.writeFieldIntValue(idFieldBytes, comma, value.getId());
out.writeFieldIntValue(randomNumberFieldBytes, comma, value.getRandomNumber());
}
out.writeTo('}');
out.writeTo((byte) '}');
}
}