json
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) '}');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) '}');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) '}');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) '}');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user