下面列出了com.fasterxml.jackson.databind.SerializerProvider#defaultSerializeValue ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void writeTraceEntries(JsonGenerator jgen, SerializerProvider provider, Multimap<Integer, TraceEntry> childmap, Multimap<Integer, TraceLogEntry> logmap, Collection<TraceEntry> traceEntries) throws IOException {
if (traceEntries.isEmpty()) {
return;
}
jgen.writeArrayFieldStart("trace");
for (TraceEntry entry : traceEntries) {
jgen.writeStartObject();
jgen.writeStringField("group", entry.getGroup());
jgen.writeStringField("name", entry.getName());
jgen.writeNumberField("start", TimeUnit.MICROSECONDS.convert(entry.getStartTicks(), entry.getTickUnits()));
jgen.writeNumberField("end", TimeUnit.MICROSECONDS.convert(entry.getEndTicks(), entry.getTickUnits()));
jgen.writeNumberField("duration", TimeUnit.MICROSECONDS.convert(entry.getDurationTicks(), entry.getTickUnits()));
Collection<TraceLogEntry> log = logmap.get(entry.getId());
if (!log.isEmpty()) {
jgen.writeArrayFieldStart("log");
for (TraceLogEntry logEntry : log) {
provider.defaultSerializeValue(logEntry, jgen);
}
jgen.writeEndArray();
}
writeTraceEntries(jgen, provider, childmap, logmap, childmap.get(entry.getId()));
jgen.writeEndObject();
}
jgen.writeEndArray();
}
/**
* Performs the serialization of a OneComponentTime object
*/
@Override
public void serialize(CumulativeTimeBucket ctb,
JsonGenerator jGen,
SerializerProvider serializer)
throws IOException, JsonProcessingException {
jGen.writeStartObject();
Timestamp ts = new Timestamp(ctb.getStartTimeNs()/1000000);
jGen.writeStringField("start-time", ts.toString());
jGen.writeStringField("current-time",
new Timestamp(System.currentTimeMillis()).toString());
jGen.writeNumberField("total-packets", ctb.getTotalPktCnt());
jGen.writeNumberField("average", ctb.getAverageProcTimeNs());
jGen.writeNumberField("min", ctb.getMinTotalProcTimeNs());
jGen.writeNumberField("max", ctb.getMaxTotalProcTimeNs());
jGen.writeNumberField("std-dev", ctb.getTotalSigmaProcTimeNs());
jGen.writeArrayFieldStart("modules");
for (OneComponentTime oct : ctb.getModules()) {
serializer.defaultSerializeValue(oct, jGen);
}
jGen.writeEndArray();
jGen.writeEndObject();
}
@Override
public void serialize(OptionValue optionValue, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException {
if (optionValue.isMultipleValues()) {
serializerProvider.defaultSerializeValue(optionValue.getValues(), jsonGenerator);
} else {
jsonGenerator.writeString(optionValue.getSingleValue());
}
}
@Override
public void serialize(PageImpl value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
gen.writeStartObject();
gen.writeNumberField("number", value.getNumber());
gen.writeNumberField("numberOfElements", value.getNumberOfElements());
gen.writeNumberField("totalElements", value.getTotalElements());
gen.writeNumberField("totalPages", value.getTotalPages());
gen.writeNumberField("size", value.getSize());
gen.writeFieldName("content");
serializers.defaultSerializeValue(value.getContent(), gen);
gen.writeEndObject();
}
@Override
public void serialize(final Mixed mixed, final JsonGenerator gen, final SerializerProvider serializers)
throws IOException, JsonProcessingException {
gen.writeStartObject();
for (final Object part : mixed.parts) {
serializers.defaultSerializeValue(part, new EnclosedJsonGenerator(gen));
}
gen.writeEndObject();
}
@Override
public void serialize(
AWSCredentialsProvider credentialsProvider,
JsonGenerator jsonGenerator,
SerializerProvider serializers)
throws IOException {
serializers.defaultSerializeValue(credentialsProvider, jsonGenerator);
}
@Override
public void serialize(
AwsCredentialsProvider credentialsProvider,
JsonGenerator jsonGenerator,
SerializerProvider serializer)
throws IOException {
serializer.defaultSerializeValue(credentialsProvider, jsonGenerator);
}
@Override
public void serializeWithType(WrappedBean<ConfiguredBean> value,
JsonGenerator jgen, SerializerProvider provider,
TypeSerializer typeSer) throws IOException,
JsonProcessingException {
provider.defaultSerializeValue(value.getWrapped(), jgen);
}
@Override
public void serialize(Device device, JsonGenerator jGen,
SerializerProvider serializer) throws IOException,
JsonProcessingException {
jGen.writeStartObject();
jGen.writeStringField("entityClass", device.getEntityClass().getName());
jGen.writeArrayFieldStart("mac");
jGen.writeString(HexString.toHexString(device.getMACAddress(), 6));
jGen.writeEndArray();
jGen.writeArrayFieldStart("ipv4");
for (Integer ip : device.getIPv4Addresses())
jGen.writeString(IPv4.fromIPv4Address(ip));
jGen.writeEndArray();
jGen.writeArrayFieldStart("vlan");
for (Short vlan : device.getVlanId())
if (vlan >= 0)
jGen.writeNumber(vlan);
jGen.writeEndArray();
jGen.writeArrayFieldStart("attachmentPoint");
for (SwitchPort ap : device.getAttachmentPoints(true)) {
serializer.defaultSerializeValue(ap, jGen);
}
jGen.writeEndArray();
jGen.writeNumberField("lastSeen", device.getLastSeen().getTime());
String dhcpClientName = device.getDHCPClientName();
if (dhcpClientName != null) {
jGen.writeStringField("dhcpClientName", dhcpClientName);
}
jGen.writeEndObject();
}
private void writeEntries(Multimap<?, ?> value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
for (Map.Entry<?, ? extends Collection<?>> entry : value.asMap().entrySet()) {
provider.findKeySerializer(provider.constructType(Object.class), null)
.serialize(entry.getKey(), jgen, provider);
provider.defaultSerializeValue(Lists.newArrayList(entry.getValue()), jgen);
}
}
@Override
public void serialize(Record o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeStartObject();
for (Map.Entry<Key<?>, Object> entry : o.values().entrySet()) {
jsonGenerator.writeFieldName(entry.getKey().name());
serializerProvider.defaultSerializeValue(entry.getValue(), jsonGenerator);
}
jsonGenerator.writeEndObject();
}
@Override
public void serialize(ComparablePeriod v, JsonGenerator g, SerializerProvider sp) throws IOException {
sp.defaultSerializeValue(v.asPeriod(), g);
}
@Override
public void serialize(final LocalDateTime value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException {
final ZonedDateTime zonedDateTime = value.atZone(ZoneId.systemDefault());
serializers.defaultSerializeValue(zonedDateTime, gen);
}
@Override
public void serialize(Identifiable<?> value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
provider.defaultSerializeValue(value.getId(), jgen);
}
@Override
public void serialize(WrappedBean<ConfiguredBean> value,
JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
provider.defaultSerializeValue(value.getWrapped(), jgen);
}
@Override
public void serialize(Enum value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
JsonGenerationException {
provider.defaultSerializeValue(value, jgen);
}