public void handle(Object javaBean, JSONVisitor visitor) {
        Class<?> clazz = javaBean.getClass();
        init(clazz);

        JSONOutputVisitor outputVisitor = (JSONOutputVisitor) visitor;
        outputVisitor.print('{');
        outputVisitor.incrementIndent();

        boolean first = true;

        Map<String, Method> getters = getGetters(clazz);
        for (Map.Entry<String, Method> getter : getters.entrySet()) {
            try {
                String name = getter.getKey();
                Object value = getter.getValue().invoke(javaBean, new Object[0]);
                if (value instanceof Date) {
                    value = ((Date) value).getTime();
                }

                if (value == null && outputVisitor.isIgnoreNull()) {
                    continue;
                }

                if (!first) {
                    outputVisitor.print(',');
                    outputVisitor.println();
                } else {
                    outputVisitor.println();
                }

                visitor.acceptEntry(new SimpleEntry(name, value));
            } catch (Throwable e) {
                throw new JSONException("output error, class : " + clazz.getName());
            }

            first = false;
        }

        outputVisitor.decementIndent();
        outputVisitor.println();
        outputVisitor.print('}');

    }