public void write(JSONSerializer serializer, Object object) throws IOException {
    SerializeWriter out = serializer.getWrier();
    DataVO vo = (DataVO) object;
    if (vo == null) {
      out.append("null");
      return;
    }
    try {
      String[] fields = vo.getFieldNames();
      if (fields.length == 0) {
        out.append("{}");
        return;
      }

      out.append('{');

      boolean commaFlag = false;
      for (int i = 0; i < fields.length; ++i) {

        Object propertyValue = vo.getValue(fields[i]);

        if (propertyValue == null && (!serializer.isEnabled(SerializerFeature.WriteMapNullValue))) {
          continue;
        }

        List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect();
        if (propertyFilters != null) {
          boolean apply = true;
          for (PropertyFilter propertyFilter : propertyFilters) {
            if (!propertyFilter.apply(object, fields[i], propertyValue)) {
              apply = false;
              break;
            }
          }

          if (!apply) {
            continue;
          }
        }

        if (commaFlag) {
          out.append(',');
        }

        commaFlag = true;
        if (propertyValue == null) {
          out.write(fields[i] + " : null ");
          continue;
        }
        ObjectSerializer objserializer = serializer.getObjectWriter(propertyValue.getClass());
        out.write("\"".concat(fields[i]).concat("\":"));
        objserializer.write(serializer, propertyValue);
      }

      out.append('}');
    } catch (Exception e) {
      throw new JSONException("write javaBean error", e);
    }
  }