com.alibaba.fastjson.serializer.SerializeWriter#write ( )源码实例Demo

下面列出了com.alibaba.fastjson.serializer.SerializeWriter#write ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: 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('}');
    }
}
 
源代码2 项目: joyrpc   文件: AbstractSerializer.java
/**
 * 写值
 *
 * @param out        输出
 * @param field      字段
 * @param value      值
 * @param ignoreNull 是否忽略null值
 * @param separator  分隔符位置
 */
protected void writeString(final SerializeWriter out, final String field, final String value,
                           final boolean ignoreNull, final int separator) {
    if (value != null || !ignoreNull) {
        if (separator == BEFORE) {
            out.write(',');
        }
        out.writeFieldName(field);
        if (value == null) {
            out.writeNull();
        } else {
            out.writeString(value);
        }
        if (separator == AFTER) {
            out.write(',');
        }
    }
}
 
源代码3 项目: 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());
}
 
源代码4 项目: 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(')');
}
 
源代码5 项目: 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(')');
}
 
源代码6 项目: 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());
}
 
源代码7 项目: 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');
        }
    }
}
 
源代码8 项目: watcher   文件: TimerSerializer.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
	Timer timer = (Timer) object;
	final Snapshot snapshot = timer.getSnapshot();
	SerializeWriter writer = serializer.getWriter();
	writer.writeFieldValue('{', "count", timer.getCount());
	writer.writeFieldValue(',', "max", snapshot.getMax() * durationFactor);
	writer.writeFieldValue(',', "mean", snapshot.getMean() * durationFactor);
	writer.writeFieldValue(',', "min", snapshot.getMin() * durationFactor);
	
	writer.writeFieldValue(',', "p50", snapshot.getMedian() * durationFactor);
	writer.writeFieldValue(',', "p75", snapshot.get75thPercentile() * durationFactor);
	writer.writeFieldValue(',', "p95", snapshot.get95thPercentile() * durationFactor);
	writer.writeFieldValue(',', "p98", snapshot.get98thPercentile() * durationFactor);
	writer.writeFieldValue(',', "p99", snapshot.get99thPercentile() * durationFactor);
	writer.writeFieldValue(',', "p999", snapshot.get999thPercentile() * durationFactor);
	
	writer.writeFieldValue(',', "stddev", snapshot.getStdDev() * durationFactor);
	writer.writeFieldValue(',', "m15_rate", timer.getFifteenMinuteRate() * rateFactor);
	writer.writeFieldValue(',', "m1_rate", timer.getOneMinuteRate() * rateFactor);
	writer.writeFieldValue(',', "m5_rate", timer.getFiveMinuteRate() * rateFactor);
	writer.writeFieldValue(',', "mean_rate", timer.getMeanRate() * rateFactor);
	writer.writeFieldValue(',', "duration_units", durationUnit);
	writer.writeFieldValue(',', "rate_units", rateUnit);
	writer.write('}');
}
 
源代码9 项目: 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(',');
        }
    }
}
 
@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;
    }
    ValueObject vo = (ValueObject) object;
    out.write(vo.toJSONString());
}
 
源代码11 项目: 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('}');
}
 
源代码12 项目: watcher   文件: MeterSerializer.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
	Meter meter = (Meter) object;
	SerializeWriter writer = serializer.getWriter();
	writer.writeFieldValue('{', "count", meter.getCount());
	writer.writeFieldValue(',', "m15_rate", meter.getFifteenMinuteRate() * rateFactor);
	writer.writeFieldValue(',', "m1_rate", meter.getOneMinuteRate() * rateFactor);
	writer.writeFieldValue(',', "m5_rate", meter.getFiveMinuteRate() * rateFactor);
	writer.writeFieldValue(',', "mean_rate", meter.getMeanRate() * rateFactor);
	writer.writeFieldValue(',', "units", rateUnit);
	writer.write('}');
}
 
源代码13 项目: actframework   文件: FastJsonFileSerializer.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter out = serializer.out;
    if (object instanceof File) {
        File file = (File) object;
        out.write(S.fmt("File[%s]", file.getPath()));
        return;
    }
    throw new UnsupportedOperationException("Object type not supported: " + object.getClass());
}
 
源代码14 项目: phone   文件: BigDecimalCustomSerializer.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;
    }

    BigDecimal val = (BigDecimal) object;
    String value = val.toString();
    out.write(NumberUtil.decimal(value, digits, fullZero));
    if (out.isEnabled(SerializerFeature.WriteClassName) && fieldType != BigDecimal.class && val.scale() == 0) {
        out.write('.');
    }
}
 
源代码15 项目: java-platform   文件: PageSerializer.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;
	}

	Page<?> page = (Page<?>) object;

	out.write('{');

	out.writeFieldName(DEFAULT_CURRENT_FIELD);
	out.writeInt(page.getNumber());
	out.write(',');

	out.writeFieldName(DEFAULT_ROWCOUNT_FIELD);
	out.writeInt(page.getSize());
	out.write(',');

	out.writeFieldName(DEFAULT_TOTAL_FIELD);
	out.writeLong(page.getTotalElements());
	out.write(',');

	out.writeFieldName(DEFAULT_ROWS_FIELD);
	serializer.write(page.getContent());

	out.write('}');
}
 
源代码16 项目: actframework   文件: FastJsonSObjectSerializer.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
    SerializeWriter out = serializer.out;
    if (object instanceof ISObject) {
        ISObject sobj = (ISObject) object;
        out.write(S.fmt("ISObject[%s]", sobj.getKey()));
        return;
    }
    throw new UnsupportedOperationException("Object type not supported: " + object.getClass());
}
 
源代码17 项目: watcher   文件: GaugeSerializer.java
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
	Gauge gauge = (Gauge) object;
	Object value = gauge.getValue();
	SerializeWriter writer = serializer.getWriter();
	if (value == null)
		writer.write("0");
	else
		writer.write(value.toString());
}
 
源代码18 项目: 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);
    }
}
 
源代码19 项目: java-platform   文件: NodeSerializer.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;
	}

	Node<?> node = (Node<?>) object;

	out.write('{');

	out.writeFieldName("children");
	serializer.write(node.getChildren());
	out.write(",");

	out.writeFieldName("leaf");
	out.write(node.getLeaf());
	out.write(",");

	if (!Strings.isNullOrEmpty(node.getIcon())) {
		out.writeFieldName("icon");
		out.writeString(node.getIcon());
		out.write(",");
	}

	if (node.getChecked() != null) {
		out.writeFieldName("checked");
		out.write(node.getChecked());
		out.write(",");
	}

	if (node.getExpanded() != null) {
		out.writeFieldName("expanded");
		out.write(node.getExpanded());
		out.write(",");
	}

	List<? extends SerializeFilter> serializeFilters = serializer.getPropertyPreFilters();

	Object data = node.getData();

	// 处理父节点
	if (data != null && data instanceof Treeable && serializeFilters != null && serializeFilters.size() > 0) {
		boolean parentProcess = false;
		for (SerializeFilter filter : serializeFilters) {
			if (filter instanceof IncludesPropertyPreFilter) {
				Set<String> includes = ((IncludesPropertyPreFilter) filter).getIncludes();
				parentProcess = includes.contains("parent");
				if (parentProcess) {
					break;
				}
			}
		}
		if (parentProcess) {
			Object parent = ((Treeable<?>) data).getParent();
			if (parent != null) {
				out.writeFieldName("parent");
				out.write(JSON.toJSONString(parent, serializeConfig,
						Iterables.toArray(serializeFilters, SerializeFilter.class)));
				out.write(",");
			}
		}
	}

	// 处理对象值
	String dataString = serializeFilters == null ? JSON.toJSONString(data, serializeConfig)
			: JSON.toJSONString(data, serializeConfig, Iterables.toArray(serializeFilters, SerializeFilter.class));
	dataString = StringUtils.substring(dataString, 1);
	out.write(dataString);
}
 
源代码20 项目: java-platform   文件: ResultSerializer.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;
	}

	Result result = (Result) object;

	out.write('{');

	Map<String, Object> extraProperties = result.getExtraProperties();
	for (Entry<String, Object> entry : extraProperties.entrySet()) {
		String key = entry.getKey();
		Object value = entry.getValue();

		out.writeFieldName(key);
		serializer.write(value);
		out.write(',');
	}

	out.writeFieldName(FIELD_SUCCESS);
	out.write(Objects.equal(result.getCode(), Code.success));
	out.write(',');

	out.writeFieldName(FIELD_CODE);
	out.writeString(result.getCode().name());
	out.write(',');

	out.writeFieldName(FIELD_MESSAGE);
	out.writeString(result.getMessage());
	out.write(',');

	out.writeFieldName(FIELD_DATA);
	serializer.write(result.getData());

	out.write('}');
}