类com.alibaba.fastjson.serializer.ObjectSerializer源码实例Demo

下面列出了怎么用com.alibaba.fastjson.serializer.ObjectSerializer的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: actframework   文件: FastJson.java
@AnnotatedClassFinder(For.class)
public void foundFor(Class<?> type) {
    For forAnno = type.getAnnotation(For.class);
    Class[] targetTypes = forAnno.value();
    if (0 == targetTypes.length) {
        warn("@For annotation on [%s] must have target type specified", type.getName());
        return;
    }
    if (ObjectSerializer.class.isAssignableFrom(type)) {
        ObjectSerializer serializer = (ObjectSerializer) app.getInstance(type);
        handleForSerializer(serializer, targetTypes);
    }
    if (ObjectDeserializer.class.isAssignableFrom(type)) {
        ObjectDeserializer deserializer = (ObjectDeserializer) app.getInstance(type);
        handleForDeserializer(deserializer, targetTypes);
    }
}
 
源代码2 项目: actframework   文件: FastJson.java
private void handleForSerializer(final ObjectSerializer serializer, Class targetType) {
    ClassNode node = repo.node(targetType.getName());
    if (null == node) {
        warn("Unknown target type: " + targetType.getName());
        return;
    }
    final SerializeConfig config = SerializeConfig.getGlobalInstance();
    node.visitSubTree(new Lang.Visitor<ClassNode>() {
        @Override
        public void visit(ClassNode classNode) throws Lang.Break {
            Class type = app.classForName(classNode.name());
            config.put(type, serializer);
        }
    });
    config.put(targetType, serializer);
}
 
源代码3 项目: stategen   文件: FastJsonSerializeConfig.java
public void setSerializers(Map<Type, ObjectSerializer> dest){
    this.put(BigInteger.class, ToStringSerializer.instance);
    this.put(Long.class, ToStringSerializer.instance);
    this.put(Long.TYPE, ToStringSerializer.instance);
    if (CollectionUtil.isNotEmpty(dest)){
        for (Entry<Type, ObjectSerializer> entry :dest.entrySet()){
            this.put(entry.getKey(), entry.getValue());
        }
    }
}
 
源代码4 项目: dpCms   文件: MyListSerializer.java
private void handle(JSONSerializer serializer, ObjectSerializer itemSerializer, SerialContext context,
		Object object, Object fieldName, Type elementType,  Object item) throws IOException {
	serializer.println();
	if (item != null) {
		itemSerializer = serializer.getObjectWriter(item.getClass());
		SerialContext itemContext = new SerialContext(context, object, fieldName, 0, 0);
		serializer.setContext(itemContext);
		itemSerializer.write(serializer, item, fieldName, elementType, 0);
	} 
	else {
		serializer.getWriter().writeNull();
	}
}
 
源代码5 项目: dpCms   文件: SerializeConfig.java
public ObjectSerializer createJavaBeanSerializer(Class<?> clazz) {
	if (!Modifier.isPublic(clazz.getModifiers())) {
		MyJavaBeanSerializer bean = new MyJavaBeanSerializer(clazz);
		return bean;
	}
	return new MyJavaBeanSerializer(clazz);
}
 
源代码6 项目: java-platform   文件: EnhancedSerializeConfig.java
@Override
public ObjectSerializer getObjectWriter(Class<?> clazz) {
	ObjectSerializer writer = get(clazz);
	if (writer == null) {
		for (java.util.Map.Entry<Class<?>, ObjectSerializer> assignableSerializerEntry : assignableSerializerMap
				.entrySet()) {
			if (assignableSerializerEntry.getKey().isAssignableFrom(clazz)) {
				put(clazz, assignableSerializerEntry.getValue());
			}
		}
	}
	return super.getObjectWriter(clazz);
}
 
源代码7 项目: actframework   文件: FastJson.java
@AnnotatedClassFinder(Serializer.class)
public void foundSerializer(Class<?> targetType) {
    Serializer serializerAnno = targetType.getAnnotation(Serializer.class);
    Class<? extends ObjectSerializer> serializerType = serializerAnno.value();
    ObjectSerializer serializer = app.getInstance(serializerType);
    handleForSerializer(serializer, targetType);
}
 
源代码8 项目: t-io   文件: Json.java
public static SerializeConfig put(Class<?> clazz, ObjectSerializer serializer) {
	mapping.put(clazz, serializer);
	return mapping;
}
 
源代码9 项目: ICERest   文件: ConstantLoader.java
public void addJsonConfig(Type type, ObjectSerializer serializer, ObjectDeserializer deserializer) {
    addJsonSerializer(type, serializer);
    addJsonDeserializer(type, deserializer);
}
 
源代码10 项目: ICERest   文件: ConstantLoader.java
public void addJsonSerializer(Type type, ObjectSerializer serializer) {
    Jsoner.addSerializer(type, serializer);
}
 
源代码11 项目: dpCms   文件: MyObjectFieldSerializer.java
public RuntimeSerializerInfo(ObjectSerializer fieldSerializer, Class<?> runtimeFieldClass){
    super();
    this.fieldSerializer = fieldSerializer;
    this.runtimeFieldClass = runtimeFieldClass;
}
 
源代码12 项目: dpCms   文件: MyCollectionSerializer.java
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter out = serializer.getWriter();
    if (object == null) {
        if (out.isEnabled(SerializerFeature.WriteNullListAsEmpty)) {
            out.write("[]");
        } 
        else {
            out.writeNull();
        }
        return;
    }

    Type elementType = null;
    if (serializer.isEnabled(SerializerFeature.WriteClassName)) {
        if (fieldType instanceof ParameterizedType) {
            ParameterizedType param = (ParameterizedType) fieldType;
            elementType = param.getActualTypeArguments()[0];
        }
    }

    Collection<?> collection = (Collection<?>) object;

    SerialContext context = serializer.getContext();
    serializer.setContext(context, object, fieldName, 0);

    if (serializer.isEnabled(SerializerFeature.WriteClassName)) {
        if (HashSet.class == collection.getClass()) {
            out.append("Set");
        } 
        else if (TreeSet.class == collection.getClass()) {
            out.append("TreeSet");
        }
    }

    try {
        int i = 0;
        out.append('[');
        
        for (Object item : collection) {

            if (i++ != 0) {
                out.append(',');
            }

            if (item == null) {
                out.writeNull();
                continue;
            }

            Class<?> clazz = item.getClass();

            if (clazz == Integer.class) {
                out.writeInt(((Integer) item).intValue());
                continue;
            }

            if (clazz == Long.class) {
                out.writeLong(((Long) item).longValue());

                if (out.isEnabled(SerializerFeature.WriteClassName)) {
                    out.write('L');
                }
                continue;
            }

            ObjectSerializer itemSerializer = serializer.getObjectWriter(clazz);
            itemSerializer.write(serializer, item, i - 1, elementType, 0);
        }
        out.append(']');
    } 
    finally {
        serializer.setContext(context);
    }
}
 
源代码13 项目: java-platform   文件: EnhancedSerializeConfig.java
public void putAssignableTo(Class<?> clazz, ObjectSerializer objectSerializer) {
	assignableSerializerMap.put(clazz, objectSerializer);
}
 
源代码14 项目: actframework   文件: FastJson.java
private void handleForSerializer(ObjectSerializer serializer, Class[] targetTypes) {
    for (Class type : targetTypes) {
        handleForSerializer(serializer, type);
    }
}
 
 类所在包
 类方法
 同包方法