json
This commit is contained in:
@@ -22,9 +22,11 @@ import org.redkale.util.*;
|
|||||||
*/
|
*/
|
||||||
public class JsonByteBufferWriter extends JsonWriter {
|
public class JsonByteBufferWriter extends JsonWriter {
|
||||||
|
|
||||||
private static final char[] CHARS_TUREVALUE = "true".toCharArray();
|
private static final byte[] BYTES_TUREVALUE = "true".getBytes();
|
||||||
|
|
||||||
private static final char[] CHARS_FALSEVALUE = "false".toCharArray();
|
private static final byte[] BYTES_FALSEVALUE = "false".getBytes();
|
||||||
|
|
||||||
|
private static final byte[] BYTES_NULL = new byte[] {'n', 'u', 'l', 'l'};
|
||||||
|
|
||||||
protected Charset charset;
|
protected Charset charset;
|
||||||
|
|
||||||
@@ -313,6 +315,11 @@ public class JsonByteBufferWriter extends JsonWriter {
|
|||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void writeNull() {
|
||||||
|
writeTo(BYTES_NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <b>注意:</b> 该String值不能为null且不会进行转义, 只用于不含需要转义字符的字符串,例如enum、double、BigInteger、BigDecimal转换的String
|
* <b>注意:</b> 该String值不能为null且不会进行转义, 只用于不含需要转义字符的字符串,例如enum、double、BigInteger、BigDecimal转换的String
|
||||||
*
|
*
|
||||||
@@ -361,6 +368,9 @@ public class JsonByteBufferWriter extends JsonWriter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value) {
|
public boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value) {
|
||||||
|
if (!value && tiny()) {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
return writeFieldLatin1Value(fieldArray, comma, false, String.valueOf(value));
|
return writeFieldLatin1Value(fieldArray, comma, false, String.valueOf(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,8 +396,13 @@ public class JsonByteBufferWriter extends JsonWriter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldObjectValue(Object fieldArray, boolean comma, Encodeable encodeable, Object value) {
|
public boolean writeFieldObjectValue(Object fieldArray, boolean comma, Encodeable encodeable, Object value) {
|
||||||
if (value == null && !nullable()) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
byte[] bs1 = (byte[]) fieldArray;
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
int expandsize = expand(1 + bs1.length);
|
int expandsize = expand(1 + bs1.length);
|
||||||
@@ -411,7 +426,15 @@ public class JsonByteBufferWriter extends JsonWriter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldStringValue(Object fieldArray, boolean comma, String value) {
|
public boolean writeFieldStringValue(Object fieldArray, boolean comma, String value) {
|
||||||
if (value == null || (tiny() && value.isEmpty())) {
|
if (value == null) {
|
||||||
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tiny() && value.isEmpty()) {
|
||||||
return comma;
|
return comma;
|
||||||
}
|
}
|
||||||
byte[] bs1 = (byte[]) fieldArray;
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
@@ -434,9 +457,45 @@ public class JsonByteBufferWriter extends JsonWriter {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void writeFieldNull(Object fieldArray, boolean comma) {
|
||||||
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
|
byte[] bs2 = BYTES_NULL;
|
||||||
|
int expandsize = expand(bs1.length + bs2.length + 3);
|
||||||
|
if (expandsize == 0) { // 只需要一个buffer
|
||||||
|
final ByteBuffer buffer = this.buffers[currBufIndex];
|
||||||
|
if (comma) buffer.put(BYTE_COMMA);
|
||||||
|
buffer.put(bs1);
|
||||||
|
buffer.put(bs2);
|
||||||
|
} else {
|
||||||
|
ByteBuffer buffer = this.buffers[currBufIndex];
|
||||||
|
if (comma) buffer.put(BYTE_COMMA);
|
||||||
|
for (byte b : bs1) {
|
||||||
|
if (!buffer.hasRemaining()) {
|
||||||
|
buffer = nextByteBuffer();
|
||||||
|
}
|
||||||
|
buffer.put(b);
|
||||||
|
}
|
||||||
|
for (byte b : bs2) {
|
||||||
|
if (!buffer.hasRemaining()) {
|
||||||
|
buffer = nextByteBuffer();
|
||||||
|
}
|
||||||
|
buffer.put(b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value) {
|
protected boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value) {
|
||||||
if (value == null || (tiny() && value.isEmpty())) {
|
if (value == null) {
|
||||||
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tiny() && value.isEmpty()) {
|
||||||
return comma;
|
return comma;
|
||||||
}
|
}
|
||||||
byte[] bs1 = (byte[]) fieldArray;
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
@@ -482,7 +541,7 @@ public class JsonByteBufferWriter extends JsonWriter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeBoolean(boolean value) {
|
public void writeBoolean(boolean value) {
|
||||||
writeTo(value ? CHARS_TUREVALUE : CHARS_FALSEVALUE);
|
writeTo(value ? BYTES_TUREVALUE : BYTES_FALSEVALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public class JsonBytesWriter extends JsonWriter implements ByteTuple {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeNull() {
|
public final void writeNull() {
|
||||||
writeTo(BYTES_NULL);
|
writeTo(BYTES_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,6 +186,9 @@ public class JsonBytesWriter extends JsonWriter implements ByteTuple {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value) {
|
public boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value) {
|
||||||
|
if (!value && tiny()) {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
byte[] bs1 = (byte[]) fieldArray;
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
byte[] bs2 = value ? BYTES_TUREVALUE : BYTES_FALSEVALUE;
|
byte[] bs2 = value ? BYTES_TUREVALUE : BYTES_FALSEVALUE;
|
||||||
int len1 = bs1.length;
|
int len1 = bs1.length;
|
||||||
@@ -245,8 +248,13 @@ public class JsonBytesWriter extends JsonWriter implements ByteTuple {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldObjectValue(Object fieldArray, boolean comma, Encodeable encodeable, Object value) {
|
public boolean writeFieldObjectValue(Object fieldArray, boolean comma, Encodeable encodeable, Object value) {
|
||||||
if (value == null && !nullable()) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
byte[] bs1 = (byte[]) fieldArray;
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
int len1 = bs1.length;
|
int len1 = bs1.length;
|
||||||
@@ -260,7 +268,15 @@ public class JsonBytesWriter extends JsonWriter implements ByteTuple {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldStringValue(Object fieldArray, boolean comma, String value) {
|
public boolean writeFieldStringValue(Object fieldArray, boolean comma, String value) {
|
||||||
if (value == null || (tiny() && value.isEmpty())) {
|
if (value == null) {
|
||||||
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tiny() && value.isEmpty()) {
|
||||||
return comma;
|
return comma;
|
||||||
}
|
}
|
||||||
byte[] bs1 = (byte[]) fieldArray;
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
@@ -273,9 +289,31 @@ public class JsonBytesWriter extends JsonWriter implements ByteTuple {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void writeFieldNull(Object fieldArray, boolean comma) {
|
||||||
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
|
byte[] bs2 = BYTES_NULL;
|
||||||
|
int len1 = bs1.length;
|
||||||
|
int len2 = bs2.length;
|
||||||
|
byte[] src = expand(1 + len1 + len2);
|
||||||
|
if (comma) src[count++] = BYTE_COMMA;
|
||||||
|
System.arraycopy(bs1, 0, src, count, len1);
|
||||||
|
count += len1;
|
||||||
|
System.arraycopy(bs2, 0, src, count, len2);
|
||||||
|
count += len2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value) {
|
protected boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value) {
|
||||||
if (value == null || (tiny() && value.isEmpty())) {
|
if (value == null) {
|
||||||
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tiny() && value.isEmpty()) {
|
||||||
return comma;
|
return comma;
|
||||||
}
|
}
|
||||||
byte[] bs1 = (byte[]) fieldArray;
|
byte[] bs1 = (byte[]) fieldArray;
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ public class JsonCharsWriter extends JsonWriter {
|
|||||||
|
|
||||||
private static final char[] CHARS_FALSEVALUE = "false".toCharArray();
|
private static final char[] CHARS_FALSEVALUE = "false".toCharArray();
|
||||||
|
|
||||||
|
private static final char[] CHARS_NULL = new char[] {'n', 'u', 'l', 'l'};
|
||||||
|
|
||||||
private static final int TENTHOUSAND_MAX = 10001;
|
private static final int TENTHOUSAND_MAX = 10001;
|
||||||
|
|
||||||
private static final char[][] TENTHOUSAND_CHARS = new char[TENTHOUSAND_MAX][];
|
private static final char[][] TENTHOUSAND_CHARS = new char[TENTHOUSAND_MAX][];
|
||||||
@@ -141,6 +143,9 @@ public class JsonCharsWriter extends JsonWriter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value) {
|
public boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value) {
|
||||||
|
if (!value && tiny()) {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
char[] bs1 = (char[]) fieldArray;
|
char[] bs1 = (char[]) fieldArray;
|
||||||
char[] bs2 = value ? CHARS_TUREVALUE : CHARS_FALSEVALUE;
|
char[] bs2 = value ? CHARS_TUREVALUE : CHARS_FALSEVALUE;
|
||||||
int len1 = bs1.length;
|
int len1 = bs1.length;
|
||||||
@@ -200,8 +205,13 @@ public class JsonCharsWriter extends JsonWriter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldObjectValue(Object fieldArray, boolean comma, Encodeable encodeable, Object value) {
|
public boolean writeFieldObjectValue(Object fieldArray, boolean comma, Encodeable encodeable, Object value) {
|
||||||
if (value == null && !nullable()) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
char[] bs1 = (char[]) fieldArray;
|
char[] bs1 = (char[]) fieldArray;
|
||||||
int len1 = bs1.length;
|
int len1 = bs1.length;
|
||||||
@@ -215,7 +225,15 @@ public class JsonCharsWriter extends JsonWriter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean writeFieldStringValue(Object fieldArray, boolean comma, String value) {
|
public boolean writeFieldStringValue(Object fieldArray, boolean comma, String value) {
|
||||||
if (value == null || (tiny() && value.isEmpty())) {
|
if (value == null) {
|
||||||
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tiny() && value.isEmpty()) {
|
||||||
return comma;
|
return comma;
|
||||||
}
|
}
|
||||||
char[] bs1 = (char[]) fieldArray;
|
char[] bs1 = (char[]) fieldArray;
|
||||||
@@ -228,9 +246,31 @@ public class JsonCharsWriter extends JsonWriter {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void writeFieldNull(Object fieldArray, boolean comma) {
|
||||||
|
char[] bs1 = (char[]) fieldArray;
|
||||||
|
char[] bs2 = CHARS_NULL;
|
||||||
|
int len1 = bs1.length;
|
||||||
|
int len2 = bs2.length;
|
||||||
|
char[] src = expand(1 + len1 + len2);
|
||||||
|
if (comma) src[count++] = BYTE_COMMA;
|
||||||
|
System.arraycopy(bs1, 0, src, count, len1);
|
||||||
|
count += len1;
|
||||||
|
System.arraycopy(bs2, 0, src, count, len2);
|
||||||
|
count += len2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value) {
|
protected boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value) {
|
||||||
if (value == null || (tiny() && value.isEmpty())) {
|
if (value == null) {
|
||||||
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tiny() && value.isEmpty()) {
|
||||||
return comma;
|
return comma;
|
||||||
}
|
}
|
||||||
char[] bs1 = (char[]) fieldArray;
|
char[] bs1 = (char[]) fieldArray;
|
||||||
@@ -265,6 +305,11 @@ public class JsonCharsWriter extends JsonWriter {
|
|||||||
return this.count;
|
return this.count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void writeNull() {
|
||||||
|
writeTo(CHARS_NULL);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeString(String value) {
|
public void writeString(String value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ public abstract class JsonWriter extends Writer {
|
|||||||
"redkale.convert.json.writer.buffer.defsize",
|
"redkale.convert.json.writer.buffer.defsize",
|
||||||
Integer.getInteger("redkale.convert.writer.buffer.defsize", 1024));
|
Integer.getInteger("redkale.convert.writer.buffer.defsize", 1024));
|
||||||
|
|
||||||
private static final char[] CHARS_NULL = new char[] {'n', 'u', 'l', 'l'};
|
|
||||||
|
|
||||||
protected static final byte BYTE_NEGATIVE = '-';
|
protected static final byte BYTE_NEGATIVE = '-';
|
||||||
|
|
||||||
protected static final byte BYTE_COMMA = ',';
|
protected static final byte BYTE_COMMA = ',';
|
||||||
@@ -61,12 +59,11 @@ public abstract class JsonWriter extends Writer {
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
public abstract void writeTo(final char ch); // 只能是 0 - 127 的字符
|
public abstract void writeTo(final char ch); // 只能是 0 - 127 的字符
|
||||||
|
|
||||||
public abstract void writeTo(final char[] chs, final int start, final int len); // 只能是 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 ch); // 只能是 0 - 127 的字符
|
||||||
|
|
||||||
public abstract void writeTo(final byte[] chs, final int start, final int len); // 只能是 0 - 127 的字符
|
public abstract void writeTo(final byte[] bs, final int start, final int len); // 只能是 0 - 127 的字符
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <b>注意:</b> 该String值不能为null且不会进行转义, 只用于不含需要转义字符的字符串,例如enum、double、BigInteger、BigDecimal转换的String
|
* <b>注意:</b> 该String值不能为null且不会进行转义, 只用于不含需要转义字符的字符串,例如enum、double、BigInteger、BigDecimal转换的String
|
||||||
*
|
*
|
||||||
@@ -76,6 +73,10 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public abstract void writeLatin1To(final boolean quote, final String value);
|
public abstract void writeLatin1To(final boolean quote, final String value);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@ClassDepends
|
||||||
|
public abstract void writeNull();
|
||||||
|
|
||||||
// ---------------------------- writeFieldXXXValue 调用前不需要判断值是否为null ----------------------------
|
// ---------------------------- writeFieldXXXValue 调用前不需要判断值是否为null ----------------------------
|
||||||
@ClassDepends
|
@ClassDepends
|
||||||
public abstract boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value);
|
public abstract boolean writeFieldBooleanValue(Object fieldArray, boolean comma, boolean value);
|
||||||
@@ -110,7 +111,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldBooleanValue(Object fieldArray, boolean comma, Boolean value) {
|
public final boolean writeFieldBooleanValue(Object fieldArray, boolean comma, Boolean value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldBooleanValue(fieldArray, comma, value.booleanValue());
|
return writeFieldBooleanValue(fieldArray, comma, value.booleanValue());
|
||||||
}
|
}
|
||||||
@@ -118,7 +124,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldByteValue(Object fieldArray, boolean comma, Byte value) {
|
public final boolean writeFieldByteValue(Object fieldArray, boolean comma, Byte value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldByteValue(fieldArray, comma, value.byteValue());
|
return writeFieldByteValue(fieldArray, comma, value.byteValue());
|
||||||
}
|
}
|
||||||
@@ -126,7 +137,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldShortValue(Object fieldArray, boolean comma, Short value) {
|
public final boolean writeFieldShortValue(Object fieldArray, boolean comma, Short value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldShortValue(fieldArray, comma, value.shortValue());
|
return writeFieldShortValue(fieldArray, comma, value.shortValue());
|
||||||
}
|
}
|
||||||
@@ -134,7 +150,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldCharValue(Object fieldArray, boolean comma, Character value) {
|
public final boolean writeFieldCharValue(Object fieldArray, boolean comma, Character value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldIntValue(fieldArray, comma, value.charValue());
|
return writeFieldIntValue(fieldArray, comma, value.charValue());
|
||||||
}
|
}
|
||||||
@@ -142,7 +163,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldIntValue(Object fieldArray, boolean comma, Integer value) {
|
public final boolean writeFieldIntValue(Object fieldArray, boolean comma, Integer value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldIntValue(fieldArray, comma, value.intValue());
|
return writeFieldIntValue(fieldArray, comma, value.intValue());
|
||||||
}
|
}
|
||||||
@@ -150,7 +176,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldFloatValue(Object fieldArray, boolean comma, Float value) {
|
public final boolean writeFieldFloatValue(Object fieldArray, boolean comma, Float value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldLatin1Value(fieldArray, comma, false, String.valueOf(value));
|
return writeFieldLatin1Value(fieldArray, comma, false, String.valueOf(value));
|
||||||
}
|
}
|
||||||
@@ -158,7 +189,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldLongValue(Object fieldArray, boolean comma, Long value) {
|
public final boolean writeFieldLongValue(Object fieldArray, boolean comma, Long value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldLongValue(fieldArray, comma, value.longValue());
|
return writeFieldLongValue(fieldArray, comma, value.longValue());
|
||||||
}
|
}
|
||||||
@@ -166,7 +202,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
@ClassDepends
|
@ClassDepends
|
||||||
public final boolean writeFieldDoubleValue(Object fieldArray, boolean comma, Double value) {
|
public final boolean writeFieldDoubleValue(Object fieldArray, boolean comma, Double value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return comma;
|
if (nullable()) {
|
||||||
|
writeFieldNull(fieldArray, comma);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return comma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return writeFieldLatin1Value(fieldArray, comma, false, String.valueOf(value));
|
return writeFieldLatin1Value(fieldArray, comma, false, String.valueOf(value));
|
||||||
}
|
}
|
||||||
@@ -183,6 +224,8 @@ public abstract class JsonWriter extends Writer {
|
|||||||
public abstract boolean writeFieldObjectValue(
|
public abstract boolean writeFieldObjectValue(
|
||||||
Object fieldArray, boolean comma, Encodeable encodeable, Object value);
|
Object fieldArray, boolean comma, Encodeable encodeable, Object value);
|
||||||
|
|
||||||
|
protected abstract void writeFieldNull(Object fieldArray, boolean comma);
|
||||||
|
|
||||||
protected abstract boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value);
|
protected abstract boolean writeFieldLatin1Value(Object fieldArray, boolean comma, boolean quote, String value);
|
||||||
|
|
||||||
// ---------------------------- writeFieldXXXValue 主要供JsonDynEncoder使用 ----------------------------
|
// ---------------------------- writeFieldXXXValue 主要供JsonDynEncoder使用 ----------------------------
|
||||||
@@ -228,12 +271,12 @@ public abstract class JsonWriter extends Writer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------------
|
||||||
public final void writeTo(final char... chs) { // 只能是 0 - 127 的字符
|
public final void writeTo(final char... cs) { // 只能是 0 - 127 的字符
|
||||||
writeTo(chs, 0, chs.length);
|
writeTo(cs, 0, cs.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void writeTo(final byte[] chs) { // 只能是 0 - 127 的字符
|
public final void writeTo(final byte[] bs) { // 只能是 0 - 127 的字符
|
||||||
writeTo(chs, 0, chs.length);
|
writeTo(bs, 0, bs.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -290,11 +333,6 @@ public abstract class JsonWriter extends Writer {
|
|||||||
writeTo(BYTE_RBRACE);
|
writeTo(BYTE_RBRACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeNull() {
|
|
||||||
writeTo(CHARS_NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void writeArrayB(int size, Encodeable componentEncoder, Object obj) {
|
public final void writeArrayB(int size, Encodeable componentEncoder, Object obj) {
|
||||||
writeTo(BYTE_LBRACKET);
|
writeTo(BYTE_LBRACKET);
|
||||||
|
|||||||
Reference in New Issue
Block a user