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

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

源代码1 项目: canal-1.1.3   文件: JsonUtils.java
/**
 * 可以允许指定一些过滤字段进行生成json对象
 */
public static String marshalToString(Object obj, String... fliterFields) {
    final List<String> propertyFliters = Arrays.asList(fliterFields);
    SerializeWriter out = new SerializeWriter();
    try {
        JSONSerializer serializer = new JSONSerializer(out);
        serializer.getPropertyFilters().add(new PropertyFilter() {

            public boolean apply(Object source, String name, Object value) {
                return !propertyFliters.contains(name);
            }

        });
        serializer.write(obj);
        return out.toString();
    } finally {
        out.close();
    }
}
 
源代码2 项目: joyrpc   文件: AbstractInvocationCodec.java
@Override
public void write(final JSONSerializer serializer, final Object object, final Object fieldName, final Type fieldType, final int features) throws IOException {
    if (object == null) {
        serializer.writeNull();
    } else {
        Call call = (Call) object;
        writeObjectBegin(serializer);
        //1、class name
        writeString(serializer, classNameKey, call.getClassName());
        //2、alias
        writeString(serializer, aliasKey, call.getAlias());
        //3、method name
        writeString(serializer, methodNameKey, call.getMethodName());
        //4.argsType
        //TODO 应该根据泛型变量来决定是否要参数类型
        if (call.isCallback()) {
            //回调需要写上实际的参数类型
            write(serializer, argsTypeKey, call.computeArgsType(), AFTER);
        }
        //5、args
        writeArgs(serializer, call);
        //7、attachments
        write(serializer, attachmentsKey, call.getAttachments(), true, BEFORE);
        writeObjectEnd(serializer);
    }
}
 
源代码3 项目: joyrpc   文件: BackupShardSerializer.java
@Override
public void write(final JSONSerializer serializer, final Object object, final Object fieldName, final Type fieldType, final int features) throws IOException {
    if (object == null) {
        serializer.writeNull();
    } else {
        SerializeWriter out = serializer.getWriter();
        out.write('{');
        BackupShard backupShard = (BackupShard) object;
        writeString(out, "name", backupShard.getName());
        writeString(out, "region", backupShard.getRegion());
        writeString(out, "dataCenter", backupShard.getDataCenter());
        writeString(out, "protocol", backupShard.getProtocol());
        writeString(out, "address", backupShard.getAddress());
        out.writeFieldName("weight");
        out.writeInt(backupShard.getWeight());
        out.write('}');
    }
}
 
源代码4 项目: joyrpc   文件: AbstractResponsePayloadCodec.java
@Override
public void write(final JSONSerializer serializer, final Object object, final Object fieldName,
                  final Type fieldType, final int features) {
    if (object == null) {
        serializer.writeNull();
    } else {
        writeObjectBegin(serializer);
        ResponsePayload payload = (object instanceof ResponseMessage ? ((ResponseMessage<ResponsePayload>) object).getPayLoad() : (ResponsePayload) object);
        if (payload != null) {
            Throwable exception = payload.getException();
            Object response = payload.getResponse();
            if (response != null) {
                write(serializer, RES_CLASS, getTypeName(response, payload.getType()), AFTER);
                write(serializer, RESPONSE, response, NONE);
            } else if (exception != null) {
                write(serializer, RES_CLASS, getCanonicalName(exception.getClass()), AFTER);
                write(serializer, EXCEPTION, exception, NONE);
            }
        }
        writeObjectEnd(serializer);
    }
}
 
源代码5 项目: feeyo-hlsserver   文件: JsonUtils.java
/**
 * 可以允许指定一些过滤字段进行生成json对象
 */
public static String marshalToString(Object obj, String... fliterFields) {
    final List<String> propertyFliters = Arrays.asList(fliterFields);
    SerializeWriter out = new SerializeWriter();
    try {
        JSONSerializer serializer = new JSONSerializer(out);
        serializer.getPropertyFilters().add(new PropertyFilter() {

            public boolean apply(Object source, String name, Object value) {
                return !propertyFliters.contains(name);
            }

        });
        serializer.write(obj);
        return out.toString();
    } finally {
        out.close();
    }
}
 
源代码6 项目: rebuild   文件: RbRecordCodec.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter out = serializer.out;
    if (object == null) {
        out.writeNull();
        return;
    }

    Record record = (Record) object;
    Entity entity = record.getEntity();
    JSONObject map = new JSONObject();
    for (Iterator<String> iter = record.getAvailableFieldIterator(); iter.hasNext(); ) {
        String field = iter.next();
        Object value = record.getObjectValue(field);
        value = FieldValueWrapper.instance.wrapFieldValue(value, entity.getField(field), false);
        map.put(field, value);
    }
    out.write(map.toJSONString());
}
 
源代码7 项目: game-server   文件: JsonUtil.java
/**
 * 对象转json
 * <p>
 * 需要jsonFiled注解
 * </p>
 *
 * @param object a {@link java.lang.Object} object.
 * @return a {@link java.lang.String} object.
 */
public static String toJSONString(Object object) {
	SerializeWriter out = new SerializeWriter();
	try {
		Map<String, Field> fieldCacheMap = new HashMap<>();
		ParserConfig.parserAllFieldToCache(object.getClass(), fieldCacheMap);
		JSONSerializer serializer = new JSONSerializer(out);
		PropertyFilter filter = (Object source, String name, Object value) -> {
			Field field = ParserConfig.getFieldFromCache(name, fieldCacheMap);
			if (field != null) {
				JSONField fieldAnnotation = field.getAnnotation(JSONField.class);
				if (fieldAnnotation != null) {
					return true;
				}
				return false;
			}
			return true;
		};
		serializer.getPropertyFilters().add(filter);
		serializer.write(object);
		return out.toString();
	} finally {
		out.close();
	}
}
 
源代码8 项目: albedo   文件: ComplexPropertyPreFilter.java
@Override
public boolean apply(JSONSerializer serializer, Object source, String name) {
	if (source == null) {
		return true;
	}

	if (clazz != null && !clazz.isInstance(source)) {
		return true;
	}

	if (this.excludes.contains(name)) {
		return false;
	}

	return includes.size() == 0 || includes.contains(name);
}
 
源代码9 项目: uavstack   文件: JSONPObject.java
public void write(JSONSerializer serializer, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter writer = serializer.out;

    if ((features & SerializerFeature.BrowserSecure.mask) != 0
            || (writer.isEnabled(SerializerFeature.BrowserSecure.mask)))
    {
        writer.write(SECURITY_PREFIX);
    }

    writer.write(function);
    writer.write('(');
    for (int i = 0; i < parameters.size(); ++i) {
        if (i != 0) {
            writer.write(',');
        }
        serializer.write(parameters.get(i));
    }
    writer.write(')');
}
 
源代码10 项目: uavstack   文件: MappingFastJsonValue.java
public void write(JSONSerializer serializer, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter writer = serializer.out;

    if(jsonpFunction == null){
        serializer.write(value);
        return;
    }


    if ((features & BrowserSecureMask) != 0 || (writer.isEnabled(BrowserSecureMask))) {
        writer.write(SECURITY_PREFIX);
    }

    writer.write(jsonpFunction);
    writer.write('(');
    serializer.write(value);
    writer.write(')');
}
 
源代码11 项目: feeyo-redisproxy   文件: JsonUtils.java
/**
 * 可以允许指定一些过滤字段进行生成json对象
 */
public static String marshalToString(Object obj, String... fliterFields) {
    final List<String> propertyFliters = Arrays.asList(fliterFields);
    SerializeWriter out = new SerializeWriter();
    try {
        JSONSerializer serializer = new JSONSerializer(out);
        serializer.getPropertyFilters().add(new PropertyFilter() {

            public boolean apply(Object source, String name, Object value) {
                return !propertyFliters.contains(name);
            }

        });
        serializer.write(obj);
        return out.toString();
    } finally {
        out.close();
    }
}
 
源代码12 项目: talent-aio   文件: SimplePropertyPreFilter.java
public boolean apply(JSONSerializer serializer, Object source, String name)
{
	if (source == null)
	{
		return true;
	}

	if (clazz != null && !clazz.isInstance(source))
	{
		return true;
	}

	if (this.excludes.contains(name))
	{
		return false;
	}

	if (includes.size() == 0 || includes.contains(name))
	{
		return true;
	}

	return false;
}
 
源代码13 项目: dpCms   文件: JsonUtil.java
/**
 *  将一个包含Date类型数据的Object序列化成字符串
 * @param object
 * @param dateFormat
 * @param features
 * @return
 */
public static String toJSONStringWithDateFormat(Object object, String dateFormat, SerializerFeature... features) {
       SerializeWriter out = new SerializeWriter();
       try {
           SerializeConfig config = new SerializeConfig();
		JSONSerializer serializer = new JSONSerializer(out,config );
           if(dateFormat != null) {
           	serializer.setDateFormat(dateFormat);
           }
           for (com.alibaba.fastjson.serializer.SerializerFeature feature : features) {
               serializer.config(feature, true);
           }
           serializer.write(object);
           return out.toString();
       } finally {
           out.close();
       }
   }
 
源代码14 项目: dpCms   文件: MyNumberFieldSerializer.java
@Override
public void writeValue(JSONSerializer serializer, Object propertyValue) throws Exception {
    SerializeWriter out = serializer.getWriter();

    Object value = propertyValue;

    if (value == null) {
        if (out.isEnabled(SerializerFeature.WriteNullNumberAsZero)) {
            out.write('0');
        } else {
            out.writeNull();
        }
        return;
    }

    out.append(value.toString());
}
 
源代码15 项目: zbus-server   文件: JsonKit.java
private static final byte[] toJSONBytes(Object object, String charsetName,
		SerializerFeature... features) {
	
	if(charsetName == null){
		charsetName = DEFAULT_ENCODING;
	}
	
	SerializeWriter out = new SerializeWriter(); 
	try {
		JSONSerializer serializer = new JSONSerializer(out);
		for (SerializerFeature feature : features) {
			serializer.config(feature, true);
		}

		serializer.write(object);

		return out.toBytes(charsetName);
	} finally {
		out.close();
	}
}
 
源代码16 项目: phone   文件: DoubleCustomSerializer.java
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
        out.write('0');
        return;
    }

    double doubleValue = ((Double) object).doubleValue();

    if (Double.isNaN(doubleValue)||Double.isInfinite(doubleValue)) {
        out.write('0');
    } else {
        String doubleText = Double.toString(doubleValue);
        NumberUtil.decimal(doubleText, digits, fullZero);
        out.append(doubleText);

        if (serializer.isEnabled(SerializerFeature.WriteClassName)) {
            out.write('D');
        }
    }
}
 
源代码17 项目: java-platform   文件: ExcludesPropertyPreFilter.java
@Override
public boolean apply(JSONSerializer serializer, Object source, String name) {
	if (source == null) {
		return true;
	}

	if (clazz != null && !clazz.isInstance(source)) {
		return true;
	}

	if (excludes.size() == 0 || !excludes.contains(name)) {
		return true;
	}

	return false;
}
 
源代码18 项目: java-platform   文件: TreeSerializer.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
		throws IOException {
	SerializeWriter out = serializer.getWriter();
	if (object == null) {
		out.writeNull();
		return;
	}

	Tree<?> tree = (Tree<?>) object;
	if (tree.isCheckable()) {
		visitCheck(tree.getRoots(), tree.getChecked());
	}

	if (!Strings.isNullOrEmpty(tree.getIconProperty())) {
		visitIcon(tree.getRoots(), tree.getIconProperty());
	}

	if (tree.isExpandAll()) {
		expandAll(tree.getRoots());
	}

	serializer.write(tree.getRoots());
}
 
源代码19 项目: canal   文件: JsonUtils.java
/**
 * 可以允许指定一些过滤字段进行生成json对象
 */
public static String marshalToString(Object obj, String... fliterFields) {
    final List<String> propertyFliters = Arrays.asList(fliterFields);
    SerializeWriter out = new SerializeWriter();
    try {
        JSONSerializer serializer = new JSONSerializer(out);
        serializer.getPropertyFilters().add(new PropertyFilter() {

            public boolean apply(Object source, String name, Object value) {
                return !propertyFliters.contains(name);
            }

        });
        serializer.write(obj);
        return out.toString();
    } finally {
        out.close();
    }
}
 
源代码20 项目: watcher   文件: HistogramSerializer.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
	Histogram histogram = (Histogram) object;
	SerializeWriter writer = serializer.getWriter();
	final Snapshot snapshot = histogram.getSnapshot();
	writer.writeFieldValue('{', "count", histogram.getCount());
	writer.writeFieldValue(',', "max", snapshot.getMax());
	writer.writeFieldValue(',', "mean", snapshot.getMean());
	writer.writeFieldValue(',', "min", snapshot.getMin());
	writer.writeFieldValue(',', "p50", snapshot.getMedian());
	writer.writeFieldValue(',', "p75", snapshot.get75thPercentile());
	writer.writeFieldValue(',', "p95", snapshot.get95thPercentile());
	writer.writeFieldValue(',', "p98", snapshot.get98thPercentile());
	writer.writeFieldValue(',', "p99", snapshot.get99thPercentile());
	writer.writeFieldValue(',', "p999", snapshot.get999thPercentile());
	writer.writeFieldValue(',', "stddev", snapshot.getStdDev());
	writer.write('}');
}
 
源代码21 项目: actframework   文件: FastJsonJodaDateCodec.java
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
        out.writeNull();
        return;
    }

    Class cls = object.getClass();
    if (cls == DateTime.class) {
        out.writeString(dateTimeCodec().toString((DateTime) object));
        return;
    } else if (cls == LocalDateTime.class) {
        out.writeString(localDateTimeCodec().toString((LocalDateTime) object));
        return;
    } else if (cls == LocalDate.class) {
        out.writeString(localDateCodec().toString((LocalDate) object));
        return;
    } else if (cls == LocalTime.class) {
        out.writeString(localTimeCodec().toString((LocalTime) object));
        return;
    }

    out.writeString(object.toString());
}
 
源代码22 项目: dubbo-2.6.5   文件: FastJsonObjectOutput.java
@Override
public void writeObject(Object obj) throws IOException {
    SerializeWriter out = new SerializeWriter();
    JSONSerializer serializer = new JSONSerializer(out);
    serializer.config(SerializerFeature.WriteEnumUsingToString, true);
    serializer.write(obj);
    out.writeTo(writer);
    out.close(); // for reuse SerializeWriter buf
    writer.println();
    writer.flush();
}
 
源代码23 项目: canal-1.1.3   文件: JsonUtils.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
                                                                                                           throws IOException {
    if (object == null) {
        serializer.writeNull();
        return;
    }

    InetAddress address = (InetAddress) object;
    // 优先使用name
    serializer.write(address.getHostName());
}
 
源代码24 项目: joyrpc   文件: AbstractSerializer.java
/**
 * 写值
 *
 * @param serializer 输出
 * @param field      字段
 * @param value      值
 * @param ignoreNull 是否忽略null值
 * @param separator  分隔符位置
 */
protected void write(final JSONSerializer serializer, final String field, final Object value,
                     final boolean ignoreNull, final int separator) {
    if (value != null || !ignoreNull) {
        SerializeWriter out = serializer.getWriter();
        if (separator == BEFORE) {
            out.write(',');
        }
        out.writeFieldName(field);
        serializer.write(value);
        if (separator == AFTER) {
            out.write(',');
        }
    }
}
 
源代码25 项目: java-unified-sdk   文件: ObjectTypeAdapter.java
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException {
    AVObject avObject = (AVObject)object;
    SerializeWriter writer = serializer.getWriter();
    writer.write('{');

    // for 1.1.70.android fastjson, we dont use writer.writeFieldValue(seperator, field, value) method.
    writer.write(' ');

//    writer.writeFieldName("@type", false);
//    writer.writeString(avObject.getClass().getName());
//    writer.write(',');

    writer.writeFieldName(KEY_VERSION, false);
    writer.writeString(DEFAULT_VERSION);
    writer.write(',');
    writer.writeFieldName(AVObject.KEY_CLASSNAME, false);
    writer.writeString(avObject.getClassName());
    writer.write(',');
    writer.writeFieldName(KEY_SERVERDATA, false);
    if (AVOSCloud.isEnableCircularReferenceDetect()) {
      writer.write(JSON.toJSONString(avObject.serverData, ObjectValueFilter.instance, SerializerFeature.WriteClassName));
    } else {
      writer.write(JSON.toJSONString(avObject.serverData, ObjectValueFilter.instance, SerializerFeature.WriteClassName,
              SerializerFeature.DisableCircularReferenceDetect));
    }

    writer.write('}');
  }
 
源代码26 项目: java-unified-sdk   文件: BaseOperationAdapter.java
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
                  int features) throws IOException {
  BaseOperation op = (BaseOperation)object;
  SerializeWriter writer = serializer.getWriter();
  writer.write('{');
  writer.writeFieldValue(' ', ATTR_OP, op.getOperation());
  writer.writeFieldValue(' ', ATTR_FIELD, op.getField());
  writer.writeFieldValue(',', ATTR_FINAL, op.isFinal);
  if (AVOSCloud.isEnableCircularReferenceDetect()) {
    writer.writeFieldValue(',', ATTR_OBJECT,
            JSON.toJSONString(op.getValue(), ObjectValueFilter.instance,
                    SerializerFeature.WriteClassName));
  } else {
    writer.writeFieldValue(',', ATTR_OBJECT,
            JSON.toJSONString(op.getValue(), ObjectValueFilter.instance,
                    SerializerFeature.WriteClassName, SerializerFeature.DisableCircularReferenceDetect));
  }

  if (object instanceof CompoundOperation) {
    if (AVOSCloud.isEnableCircularReferenceDetect()) {
      writer.writeFieldValue(',', ATTR_SUBOPS,
              JSON.toJSONString(((CompoundOperation)op).getSubOperations(), ObjectValueFilter.instance,
                      SerializerFeature.WriteClassName));
    } else {
      writer.writeFieldValue(',', ATTR_SUBOPS,
              JSON.toJSONString(((CompoundOperation)op).getSubOperations(), ObjectValueFilter.instance,
                      SerializerFeature.WriteClassName, SerializerFeature.DisableCircularReferenceDetect));
    }
  }
  writer.write('}');
}
 
源代码27 项目: spring-boot-protocol   文件: JsonDataCodec.java
@Override
public byte[] encodeResponseData(Object data,RpcMethod rpcMethod) {
    if(data == null){
        return EMPTY;
    }

    try (SerializeWriter out = new SerializeWriter(null, JSON.DEFAULT_GENERATE_FEATURE,
            SERIALIZER_FEATURES)) {
        JSONSerializer serializer = new JSONSerializer(out, SerializeConfig.globalInstance);
        serializer.write(data);
        return out.toBytes(CHARSET_UTF8);
    }
}
 
源代码28 项目: rebuild   文件: RbCodecTest.java
@Test
public void testRbRecordCodec() throws IOException {
    Record record = EntityHelper.forNew(EntityHelper.User, UserService.SYSTEM_USER);
    RbRecordCodec.instance.write(new JSONSerializer(), record, null, null, 0);

    Map<String, Object> map = new HashMap<>();
    map.put("fieldName2", record);
    System.out.println(JSON.toJSONString(map));
}
 
源代码29 项目: eagle   文件: FastJsonSerailization.java
@Override
public byte[] serialize(Object data) throws IOException {
    SerializeWriter out = new SerializeWriter();
    JSONSerializer serializer = new JSONSerializer(out);
    serializer.config(SerializerFeature.WriteEnumUsingToString, true);
    serializer.config(SerializerFeature.WriteClassName, true);
    serializer.write(data);
    return out.toBytes(CHARSET_UTF8);
}
 
源代码30 项目: t-io   文件: JfinalRecordSerializer.java
/**
 * @param serializer
 * @param object
 * @param fieldName
 * @param fieldType
 * @param features
 * @throws IOException
 * @author tanyaowu
 */
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
	if (object == null) {
		serializer.out.writeNull();
		return;
	}

	Record record = (Record) object;

	Map<String, Object> map = record.getColumns();
	serializer.write(map);
}
 
 类所在包
 同包方法