java类com.alibaba.fastjson.JSONStreamAware的实例源码

JSONSerializerTest.java 文件源码 项目:GitHub 阅读 47 收藏 0 点赞 0 评论 0
public void test_4() throws Exception {
    JSONSerializer serializer = new JSONSerializer();
    serializer.write(new JSONStreamAware() {

        public void writeJSONString(Appendable out) throws IOException {
            out.append("abc");
        }
    });

    Assert.assertEquals("abc", serializer.getWriter().toString());
}
JSONStreamAwareSerializer.java 文件源码 项目:boohee_v5.6 阅读 33 收藏 0 点赞 0 评论 0
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException {
    ((JSONStreamAware) object).writeJSONString(serializer.getWriter());
}
JSONStreamAwareSerializer.java 文件源码 项目:uavstack 阅读 37 收藏 0 点赞 0 评论 0
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter out = serializer.getWriter();

    JSONStreamAware aware = (JSONStreamAware) object;
    aware.writeJSONString(out);
}
JSONStreamAwareSerializer.java 文件源码 项目:itmarry 阅读 34 收藏 0 点赞 0 评论 0
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException {
    SerializeWriter out = serializer.getWriter();

    JSONStreamAware aware = (JSONStreamAware) object;
    aware.writeJSONString(out);
}
JSONSerializer.java 文件源码 项目:android_http_demo 阅读 50 收藏 0 点赞 0 评论 0
public ObjectSerializer getObjectWriter(Class<?> clazz) {
    ObjectSerializer writer = config.get(clazz);

    if (writer == null) {
        if (Map.class.isAssignableFrom(clazz)) {
            config.put(clazz, MapSerializer.instance);
        } else if (List.class.isAssignableFrom(clazz)) {
            config.put(clazz, ListSerializer.instance);
        } else if (Collection.class.isAssignableFrom(clazz)) {
            config.put(clazz, CollectionSerializer.instance);
        } else if (Date.class.isAssignableFrom(clazz)) {
            config.put(clazz, DateSerializer.instance);
        } else if (JSONAware.class.isAssignableFrom(clazz)) {
            config.put(clazz, JSONAwareSerializer.instance);
        } else if (JSONStreamAware.class.isAssignableFrom(clazz)) {
            config.put(clazz, JSONStreamAwareSerializer.instance);
        } else if (clazz.isEnum() || (clazz.getSuperclass() != null && clazz.getSuperclass().isEnum())) {
            config.put(clazz, EnumSerializer.instance);
        } else if (clazz.isArray()) {
            Class<?> componentType = clazz.getComponentType();
            ObjectSerializer compObjectSerializer = getObjectWriter(componentType);
            config.put(clazz, new ArraySerializer(componentType, compObjectSerializer));
        } else if (Throwable.class.isAssignableFrom(clazz)) {
            config.put(clazz, new ExceptionSerializer(clazz));
        } else if (TimeZone.class.isAssignableFrom(clazz)) {
            config.put(clazz, TimeZoneSerializer.instance);
        } else if (Appendable.class.isAssignableFrom(clazz)) {
            config.put(clazz, AppendableSerializer.instance);
        } else if (Charset.class.isAssignableFrom(clazz)) {
            config.put(clazz, ToStringSerializer.instance);
        } else if (Enumeration.class.isAssignableFrom(clazz)) {
            config.put(clazz, EnumerationSeriliazer.instance);
        } else if (Calendar.class.isAssignableFrom(clazz)) {
            config.put(clazz, CalendarSerializer.instance);
        } else {
            boolean isCglibProxy = false;
            boolean isJavassistProxy = false;
            for (Class<?> item : clazz.getInterfaces()) {
                if (item.getName().equals("net.sf.cglib.proxy.Factory")) {
                    isCglibProxy = true;
                    break;
                } else if (item.getName().equals("javassist.util.proxy.ProxyObject")) {
                    isJavassistProxy = true;
                    break;
                }
            }

            if (isCglibProxy || isJavassistProxy) {
                Class<?> superClazz = clazz.getSuperclass();

                ObjectSerializer superWriter = getObjectWriter(superClazz);
                config.put(clazz, superWriter);
                return superWriter;
            }

            if (Proxy.isProxyClass(clazz)) {
                config.put(clazz, config.createJavaBeanSerializer(clazz));
            } else {
                config.put(clazz, config.createJavaBeanSerializer(clazz));
            }
        }

        writer = config.get(clazz);
    }
    return writer;
}
JSONStreamAwareSerializer.java 文件源码 项目:android_http_demo 阅读 29 收藏 0 点赞 0 评论 0
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException {
    SerializeWriter out = serializer.getWriter();

    JSONStreamAware aware = (JSONStreamAware) object;
    aware.writeJSONString(out);
}
JSONSerializer.java 文件源码 项目:AndroidNio 阅读 32 收藏 0 点赞 0 评论 0
public ObjectSerializer getObjectWriter(Class<?> clazz) {
    ObjectSerializer writer = config.get(clazz);

    if (writer == null) {
        if (Map.class.isAssignableFrom(clazz)) {
            config.put(clazz, MapSerializer.instance);
        } else if (List.class.isAssignableFrom(clazz)) {
            config.put(clazz, ListSerializer.instance);
        } else if (Collection.class.isAssignableFrom(clazz)) {
            config.put(clazz, CollectionSerializer.instance);
        } else if (Date.class.isAssignableFrom(clazz)) {
            config.put(clazz, DateSerializer.instance);
        } else if (JSONAware.class.isAssignableFrom(clazz)) {
            config.put(clazz, JSONAwareSerializer.instance);
        } else if (JSONStreamAware.class.isAssignableFrom(clazz)) {
            config.put(clazz, JSONStreamAwareSerializer.instance);
        } else if (clazz.isEnum() || (clazz.getSuperclass() != null && clazz.getSuperclass().isEnum())) {
            config.put(clazz, EnumSerializer.instance);
        } else if (clazz.isArray()) {
            Class<?> componentType = clazz.getComponentType();
            ObjectSerializer compObjectSerializer = getObjectWriter(componentType);
            config.put(clazz, new ArraySerializer(componentType, compObjectSerializer));
        } else if (Throwable.class.isAssignableFrom(clazz)) {
            config.put(clazz, new ExceptionSerializer(clazz));
        } else if (TimeZone.class.isAssignableFrom(clazz)) {
            config.put(clazz, TimeZoneSerializer.instance);
        } else if (Appendable.class.isAssignableFrom(clazz)) {
            config.put(clazz, AppendableSerializer.instance);
        } else if (Charset.class.isAssignableFrom(clazz)) {
            config.put(clazz, ToStringSerializer.instance);
        } else if (Enumeration.class.isAssignableFrom(clazz)) {
            config.put(clazz, EnumerationSeriliazer.instance);
        } else if (Calendar.class.isAssignableFrom(clazz)) {
            config.put(clazz, CalendarSerializer.instance);
        } else {
            boolean isCglibProxy = false;
            boolean isJavassistProxy = false;
            for (Class<?> item : clazz.getInterfaces()) {
                if (item.getName().equals("net.sf.cglib.proxy.Factory")) {
                    isCglibProxy = true;
                    break;
                } else if (item.getName().equals("javassist.util.proxy.ProxyObject")) {
                    isJavassistProxy = true;
                    break;
                }
            }

            if (isCglibProxy || isJavassistProxy) {
                Class<?> superClazz = clazz.getSuperclass();

                ObjectSerializer superWriter = getObjectWriter(superClazz);
                config.put(clazz, superWriter);
                return superWriter;
            }

            if (Proxy.isProxyClass(clazz)) {
                config.put(clazz, config.createJavaBeanSerializer(clazz));
            } else {
                config.put(clazz, config.createJavaBeanSerializer(clazz));
            }
        }

        writer = config.get(clazz);
    }
    return writer;
}
JSONStreamAwareSerializer.java 文件源码 项目:AndroidNio 阅读 35 收藏 0 点赞 0 评论 0
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException {
    SerializeWriter out = serializer.getWriter();

    JSONStreamAware aware = (JSONStreamAware) object;
    aware.writeJSONString(out);
}


问题


面经


文章

微信
公众号

扫码关注公众号