Skip to content

Commit

Permalink
bug fix for android support
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Nov 12, 2022
1 parent 662a04b commit 3ab32e7
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,10 @@ public boolean write(JSONWriter jsonWriter, T object) {
jsonWriter.writeArrayNull();
} else if (number) {
jsonWriter.writeNumberNull();
} else if (fieldClass == Appendable.class
|| fieldClass == StringBuffer.class
|| fieldClass == StringBuilder.class) {
jsonWriter.writeStringNull();
} else {
jsonWriter.writeNull();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -725,8 +725,27 @@ public <T> FieldWriter<T> createFieldWriter(
return new FieldWriterStringField(fieldName, ordinal, features, format, label, field);
}

if (fieldClass.isEnum() && BeanUtils.getEnumValueField(fieldClass, provider) == null) {
return new FIeldWriterEnumField(fieldName, ordinal, features, format, label, fieldClass, field);
if (fieldClass.isEnum()) {
BeanInfo beanInfo = new BeanInfo();
for (ObjectWriterModule module : provider.modules) {
ObjectWriterAnnotationProcessor annotationProcessor = module.getAnnotationProcessor();
if (annotationProcessor != null) {
annotationProcessor.getBeanInfo(beanInfo, fieldClass);
}
}

boolean writeEnumAsJavaBean = beanInfo.writeEnumAsJavaBean;
if (!writeEnumAsJavaBean) {
ObjectWriter objectWriter = provider.cache.get(fieldClass);
if (objectWriter != null && !(objectWriter instanceof ObjectWriterImplEnum)) {
writeEnumAsJavaBean = true;
}
}

Member enumValueField = BeanUtils.getEnumValueField(fieldClass, provider);
if (enumValueField == null && !writeEnumAsJavaBean) {
return new FIeldWriterEnumField(fieldName, ordinal, features, format, label, fieldClass, field);
}
}

if (fieldClass == List.class || fieldClass == ArrayList.class) {
Expand Down

0 comments on commit 3ab32e7

Please sign in to comment.