json
This commit is contained in:
@@ -343,15 +343,15 @@ public class ObjectEncoder<W extends Writer, T> implements Encodeable<W, T> {
|
|||||||
if (out.objExtFunc != null) {
|
if (out.objExtFunc != null) {
|
||||||
ConvertField[] extFields = out.objExtFunc.apply(value);
|
ConvertField[] extFields = out.objExtFunc.apply(value);
|
||||||
if (extFields != null) {
|
if (extFields != null) {
|
||||||
Encodeable<W, ?> anyEncoder = factory.getAnyEncoder();
|
|
||||||
for (ConvertField en : extFields) {
|
for (ConvertField en : extFields) {
|
||||||
if (en != null) {
|
if (en != null) {
|
||||||
|
Encodeable<W, ?> extEncoder = factory.loadEncoder(en.getType());
|
||||||
maxPosition++;
|
maxPosition++;
|
||||||
out.writeFieldValue(
|
out.writeFieldValue(
|
||||||
en.getName(),
|
en.getName(),
|
||||||
en.getType(),
|
en.getType(),
|
||||||
Math.max(en.getPosition(), maxPosition),
|
Math.max(en.getPosition(), maxPosition),
|
||||||
anyEncoder,
|
extEncoder,
|
||||||
en.getValue());
|
en.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,12 +151,11 @@ public abstract class Writer {
|
|||||||
* @param fieldName 字段名称
|
* @param fieldName 字段名称
|
||||||
* @param fieldType 字段类型
|
* @param fieldType 字段类型
|
||||||
* @param fieldPos 字段顺序
|
* @param fieldPos 字段顺序
|
||||||
* @param anyEncoder Encoder
|
* @param fieldEncoder Encoder
|
||||||
* @param value 写入的字段对象
|
* @param value 写入的字段对象
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void writeFieldValue(
|
public void writeFieldValue(String fieldName, Type fieldType, int fieldPos, Encodeable fieldEncoder, Object value) {
|
||||||
final String fieldName, Type fieldType, int fieldPos, Encodeable anyEncoder, Object value) {
|
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
if (nullable()) {
|
if (nullable()) {
|
||||||
this.writeField(null, fieldName, fieldType, fieldPos);
|
this.writeField(null, fieldName, fieldType, fieldPos);
|
||||||
@@ -181,7 +180,7 @@ public abstract class Writer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.writeField(null, fieldName, fieldType, fieldPos);
|
this.writeField(null, fieldName, fieldType, fieldPos);
|
||||||
anyEncoder.convertTo(this, value);
|
fieldEncoder.convertTo(this, value);
|
||||||
this.comma = true;
|
this.comma = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user