本文整理汇总了Java中com.alibaba.fastjson.util.FieldInfo.getAnnotation方法的典型用法代码示例。如果您正苦于以下问题:Java FieldInfo.getAnnotation方法的具体用法?Java FieldInfo.getAnnotation怎么用?Java FieldInfo.getAnnotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.alibaba.fastjson.util.FieldInfo
的用法示例。
在下文中一共展示了FieldInfo.getAnnotation方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createFieldDeserializer
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public FieldDeserializer createFieldDeserializer(ParserConfig mapping, //
JavaBeanInfo beanInfo, //
FieldInfo fieldInfo) {
Class<?> clazz = beanInfo.clazz;
Class<?> fieldClass = fieldInfo.fieldClass;
Class<?> deserializeUsing = null;
JSONField annotation = fieldInfo.getAnnotation();
if (annotation != null) {
deserializeUsing = annotation.deserializeUsing();
if (deserializeUsing == Void.class) {
deserializeUsing = null;
}
}
if (deserializeUsing == null && (fieldClass == List.class || fieldClass == ArrayList.class)) {
return new ArrayListTypeFieldDeserializer(mapping, clazz, fieldInfo);
}
return new DefaultFieldDeserializerBug569(mapping, clazz, fieldInfo);
}
示例2: FieldSerializer
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public FieldSerializer(FieldInfo fieldInfo) {
int i = 0;
this.fieldInfo = fieldInfo;
fieldInfo.setAccessible(true);
this.double_quoted_fieldPrefix = '\"' + fieldInfo.getName() + "\":";
this.single_quoted_fieldPrefix = '\'' + fieldInfo.getName() + "':";
this.un_quoted_fieldPrefix = fieldInfo.getName() + ":";
JSONField annotation = (JSONField) fieldInfo.getAnnotation(JSONField.class);
if (annotation != null) {
SerializerFeature[] serialzeFeatures = annotation.serialzeFeatures();
int length = serialzeFeatures.length;
while (i < length) {
if (serialzeFeatures[i] == SerializerFeature.WriteMapNullValue) {
this.writeNull = true;
}
i++;
}
}
}
示例3: FieldSerializer
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public FieldSerializer(FieldInfo fieldInfo){
super();
this.fieldInfo = fieldInfo;
fieldInfo.setAccessible(true);
this.double_quoted_fieldPrefix = '"' + fieldInfo.getName() + "\":";
this.single_quoted_fieldPrefix = '\'' + fieldInfo.getName() + "\':";
this.un_quoted_fieldPrefix = fieldInfo.getName() + ":";
JSONField annotation = fieldInfo.getAnnotation(JSONField.class);
if (annotation != null) {
for (SerializerFeature feature : annotation.serialzeFeatures()) {
if (feature == SerializerFeature.WriteMapNullValue) {
writeNull = true;
}
}
}
}
示例4: _enum
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _enum(Class<?> cls, MethodVisitor mw, FieldInfo property, Context context) {
boolean writeEnumUsingToString = false;
JSONField annotation = (JSONField) property.getAnnotation(JSONField.class);
if (annotation != null) {
for (SerializerFeature feature : annotation.serialzeFeatures()) {
if (feature == SerializerFeature.WriteEnumUsingToString) {
writeEnumUsingToString = true;
}
}
}
Label _not_null = new Label();
Label _end_if = new Label();
Label _end = new Label();
_nameApply(mw, property, context, _end);
_get(mw, context, property);
mw.visitTypeInsn(192, "java/lang/Enum");
mw.visitVarInsn(58, context.var("enum"));
_filters(mw, property, context, _end);
mw.visitVarInsn(25, context.var("enum"));
mw.visitJumpInsn(199, _not_null);
_if_write_null(mw, property, context);
mw.visitJumpInsn(167, _end_if);
mw.visitLabel(_not_null);
mw.visitVarInsn(25, context.var("out"));
mw.visitVarInsn(21, context.var("seperator"));
mw.visitVarInsn(25, context.fieldName());
mw.visitVarInsn(25, context.var("enum"));
if (writeEnumUsingToString) {
mw.visitMethodInsn(182, "java/lang/Object", "toString", "()Ljava/lang/String;");
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Ljava/lang/String;)V");
} else {
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Ljava/lang/Enum;)V");
}
_seperator(mw, context);
mw.visitLabel(_end_if);
mw.visitLabel(_end);
}
示例5: ObjectFieldSerializer
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
public ObjectFieldSerializer(FieldInfo fieldInfo){
super(fieldInfo);
JSONField annotation = fieldInfo.getAnnotation(JSONField.class);
if (annotation != null) {
format = annotation.format();
if (format.trim().length() == 0) {
format = null;
}
for (SerializerFeature feature : annotation.serialzeFeatures()) {
if (feature == SerializerFeature.WriteNullNumberAsZero) {
writeNumberAsZero = true;
} else if (feature == SerializerFeature.WriteNullStringAsEmpty) {
writeNullStringAsEmpty = true;
} else if (feature == SerializerFeature.WriteNullBooleanAsFalse) {
writeNullBooleanAsFalse = true;
} else if (feature == SerializerFeature.WriteNullListAsEmpty) {
writeNullListAsEmpty = true;
} else if (feature == SerializerFeature.WriteEnumUsingToString) {
writeEnumUsingToString = true;
}else if(feature == SerializerFeature.WriteEnumUsingName){
writeEnumUsingName = true;
}
}
}
}
示例6: _if_write_null
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _if_write_null(MethodVisitor mw, FieldInfo fieldInfo, Context context) {
Class<?> propertyClass = fieldInfo.fieldClass;
Label _if = new Label();
Label _else = new Label();
Label _write_null = new Label();
Label _end_if = new Label();
mw.visitLabel(_if);
JSONField annotation = fieldInfo.getAnnotation();
int features = 0;
if (annotation != null) {
features = SerializerFeature.of(annotation.serialzeFeatures());
;
}
int writeNullFeatures;
if (propertyClass == String.class) {
writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
| SerializerFeature.WriteNullStringAsEmpty.getMask();
} else if (Number.class.isAssignableFrom(propertyClass)) {
writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
| SerializerFeature.WriteNullNumberAsZero.getMask();
} else if (Collection.class.isAssignableFrom(propertyClass)) {
writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
| SerializerFeature.WriteNullListAsEmpty.getMask();
} else if (Boolean.class == propertyClass) {
writeNullFeatures = SerializerFeature.WriteMapNullValue.getMask()
| SerializerFeature.WriteNullBooleanAsFalse.getMask();
} else {
writeNullFeatures = SerializerFeature.WRITE_MAP_NULL_FEATURES;
}
if ((features & writeNullFeatures) == 0) {
mw.visitVarInsn(ALOAD, context.var("out"));
mw.visitLdcInsn(writeNullFeatures);
mw.visitMethodInsn(INVOKEVIRTUAL, SerializeWriter, "isEnabled", "(I)Z");
mw.visitJumpInsn(IFEQ, _else);
}
mw.visitLabel(_write_null);
mw.visitVarInsn(ALOAD, context.var("out"));
mw.visitVarInsn(ILOAD, context.var("seperator"));
mw.visitMethodInsn(INVOKEVIRTUAL, SerializeWriter, "write", "(I)V");
_writeFieldName(mw, context);
mw.visitVarInsn(ALOAD, context.var("out"));
mw.visitLdcInsn(features);
// features
if (propertyClass == String.class || propertyClass == Character.class) {
mw.visitLdcInsn(SerializerFeature.WriteNullStringAsEmpty.mask);
} else if (Number.class.isAssignableFrom(propertyClass)) {
mw.visitLdcInsn(SerializerFeature.WriteNullNumberAsZero.mask);
} else if (propertyClass == Boolean.class) {
mw.visitLdcInsn(SerializerFeature.WriteNullBooleanAsFalse.mask);
} else if (Collection.class.isAssignableFrom(propertyClass) || propertyClass.isArray()) {
mw.visitLdcInsn(SerializerFeature.WriteNullListAsEmpty.mask);
} else {
mw.visitLdcInsn(0);
}
mw.visitMethodInsn(INVOKEVIRTUAL, SerializeWriter, "writeNull", "(II)V");
// seperator = ',';
_seperator(mw, context);
mw.visitJumpInsn(GOTO, _end_if);
mw.visitLabel(_else);
mw.visitLabel(_end_if);
}
示例7: _if_write_null
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _if_write_null(MethodVisitor mw, FieldInfo fieldInfo, Context context) {
Class<?> propertyClass = fieldInfo.getFieldClass();
Label _if = new Label();
Label _else = new Label();
Label _write_null = new Label();
Label _end_if = new Label();
mw.visitLabel(_if);
boolean writeNull = false;
boolean writeNullNumberAsZero = false;
boolean writeNullStringAsEmpty = false;
boolean writeNullBooleanAsFalse = false;
boolean writeNullListAsEmpty = false;
JSONField annotation = (JSONField) fieldInfo.getAnnotation(JSONField.class);
if (annotation != null) {
for (SerializerFeature feature : annotation.serialzeFeatures()) {
if (feature == SerializerFeature.WriteMapNullValue) {
writeNull = true;
} else if (feature == SerializerFeature.WriteNullNumberAsZero) {
writeNullNumberAsZero = true;
} else if (feature == SerializerFeature.WriteNullStringAsEmpty) {
writeNullStringAsEmpty = true;
} else if (feature == SerializerFeature.WriteNullBooleanAsFalse) {
writeNullBooleanAsFalse = true;
} else if (feature == SerializerFeature.WriteNullListAsEmpty) {
writeNullListAsEmpty = true;
}
}
}
if (!writeNull) {
mw.visitVarInsn(25, context.var("out"));
mw.visitFieldInsn(178, "com/alibaba/fastjson/serializer/SerializerFeature", "WriteMapNullValue", "Lcom/alibaba/fastjson/serializer/SerializerFeature;");
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "isEnabled", "(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z");
mw.visitJumpInsn(153, _else);
}
mw.visitLabel(_write_null);
mw.visitVarInsn(25, context.var("out"));
mw.visitVarInsn(21, context.var("seperator"));
mw.visitVarInsn(25, context.fieldName());
if (propertyClass == String.class || propertyClass == Character.class) {
if (writeNullStringAsEmpty) {
mw.visitLdcInsn("");
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Ljava/lang/String;)V");
} else {
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullString", "(CLjava/lang/String;)V");
}
} else if (Number.class.isAssignableFrom(propertyClass)) {
if (writeNullNumberAsZero) {
mw.visitInsn(3);
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;I)V");
} else {
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullNumber", "(CLjava/lang/String;)V");
}
} else if (propertyClass == Boolean.class) {
if (writeNullBooleanAsFalse) {
mw.visitInsn(3);
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue", "(CLjava/lang/String;Z)V");
} else {
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullBoolean", "(CLjava/lang/String;)V");
}
} else if (!Collection.class.isAssignableFrom(propertyClass) && !propertyClass.isArray()) {
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNull", "(CLjava/lang/String;)V");
} else if (writeNullListAsEmpty) {
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldEmptyList", "(CLjava/lang/String;)V");
} else {
mw.visitMethodInsn(182, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldNullList", "(CLjava/lang/String;)V");
}
_seperator(mw, context);
mw.visitJumpInsn(167, _end_if);
mw.visitLabel(_else);
mw.visitLabel(_end_if);
}
示例8: _enum
import com.alibaba.fastjson.util.FieldInfo; //导入方法依赖的package包/类
private void _enum(Class<?> clazz, MethodVisitor mw, FieldInfo property, Context context) {
boolean writeEnumUsingToString = false;
JSONField annotation = property.getAnnotation(JSONField.class);
if (annotation != null) {
for (SerializerFeature feature : annotation.serialzeFeatures()) {
if (feature == SerializerFeature.WriteEnumUsingToString) {
writeEnumUsingToString = true;
}
}
}
Label _not_null = new Label();
Label _end_if = new Label();
Label _end = new Label();
_nameApply(mw, property, context, _end);
_get(mw, context, property);
mw.visitTypeInsn(CHECKCAST, "java/lang/Enum"); // cast
mw.visitVarInsn(ASTORE, context.var("enum"));
_filters(mw, property, context, _end);
mw.visitVarInsn(ALOAD, context.var("enum"));
mw.visitJumpInsn(IFNONNULL, _not_null);
_if_write_null(mw, property, context);
mw.visitJumpInsn(GOTO, _end_if);
mw.visitLabel(_not_null);
mw.visitVarInsn(ALOAD, context.var("out"));
mw.visitVarInsn(ILOAD, context.var("seperator"));
mw.visitVarInsn(ALOAD, context.fieldName());
mw.visitVarInsn(ALOAD, context.var("enum"));
if (writeEnumUsingToString) {
mw.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Object", "toString", "()Ljava/lang/String;");
mw.visitMethodInsn(INVOKEVIRTUAL, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue",
"(CLjava/lang/String;Ljava/lang/String;)V");
} else {
mw.visitMethodInsn(INVOKEVIRTUAL, "com/alibaba/fastjson/serializer/SerializeWriter", "writeFieldValue",
"(CLjava/lang/String;Ljava/lang/Enum;)V");
}
_seperator(mw, context);
mw.visitLabel(_end_if);
mw.visitLabel(_end);
}