下面列出了com.fasterxml.jackson.core.JsonGenerator#writeTree ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static String toString(ColumnMapping mapping, boolean pretty) {
StringWriter writer = new StringWriter();
JsonGenerator gen;
try {
gen = new JsonFactory().createGenerator(writer);
if (pretty) {
gen.useDefaultPrettyPrinter();
}
gen.setCodec(new ObjectMapper());
gen.writeTree(toJson(mapping));
gen.close();
} catch (IOException e) {
throw new DatasetIOException("Cannot write to JSON generator", e);
}
return writer.toString();
}
protected WAMPOutputStream welcomeMessage() throws Throwable{
if(ROUTER)
Debugger.temp("<- WelcomeMessage: [%d, %d, %s]", WelcomeMessage.ID, sessionID, Peer.router.details);
WAMPOutputStream out = router.server.createOutputStream();
try{
JsonGenerator json = serialization.mapper().getFactory().createGenerator(out);
json.writeStartArray();
json.writeNumber(WelcomeMessage.ID);
json.writeNumber(sessionID);
json.writeTree(Peer.router.details);
json.writeEndArray();
json.close();
return out;
}catch(Throwable thr){
out.release();
throw thr;
}
}
protected WAMPOutputStream invocationMessage(long requestID, long registrationID, ObjectNode details, JsonParser call) throws Throwable{
if(ROUTER)
Debugger.temp("<- InvocationMessage: [%d, %d, %s, ...]", InvocationMessage.ID, requestID, registrationID, details);
WAMPOutputStream out = router.server.createOutputStream();
try{
JsonGenerator json = serialization.mapper().getFactory().createGenerator(out);
json.writeStartArray();
json.writeNumber(InvocationMessage.ID);
json.writeNumber(requestID);
json.writeNumber(registrationID);
if(details==null){
json.writeStartObject();
json.writeEndObject();
}else
json.writeTree(details);
while(call.nextToken()!=null)
json.copyCurrentEvent(call);
json.close();
return out;
}catch(Throwable thr){
out.release();
throw thr;
}
}
protected WAMPOutputStream errorMessage(int requestType, long requestID, ErrorCode errorCode) throws Throwable{
if(ROUTER)
Debugger.temp("<- ErrorMessage: [%d, %d, %d, {}, \"%s\", %s, %s]", ErrorMessage.ID, requestType, requestID, errorCode.uri, errorCode.arguments, errorCode.argumentsKw);
WAMPOutputStream out = router.server.createOutputStream();
try{
JsonGenerator json = serialization.mapper().getFactory().createGenerator(out);
json.writeStartArray();
json.writeNumber(ErrorMessage.ID);
json.writeNumber(requestType);
json.writeNumber(requestID);
json.writeStartObject();
json.writeEndObject();
json.writeString(errorCode.uri);
json.writeTree(errorCode.arguments);
json.writeTree(errorCode.argumentsKw);
json.writeEndArray();
json.close();
return out;
}catch(Throwable thr){
out.release();
throw thr;
}
}
public static String writeValue(List<PluginDescriptor> pluginDescriptors) throws IOException {
ObjectMapper mapper = ObjectMappers.create();
StringBuilder sb = new StringBuilder();
JsonGenerator jg = mapper.getFactory().createGenerator(CharStreams.asWriter(sb));
try {
jg.setPrettyPrinter(ObjectMappers.getPrettyPrinter());
jg.writeStartArray();
for (PluginDescriptor pluginDescriptor : pluginDescriptors) {
ObjectNode objectNode = mapper.valueToTree(pluginDescriptor);
ObjectMappers.stripEmptyContainerNodes(objectNode);
jg.writeTree(objectNode);
}
jg.writeEndArray();
} finally {
jg.close();
}
// newline is not required, just a personal preference
sb.append(ObjectMappers.NEWLINE);
return sb.toString();
}
@SuppressWarnings("unused")
private static void prettyPrint(String json) throws IOException {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
CustomPrettyPrinter prettyPrinter = new CustomPrettyPrinter();
prettyPrinter.indentArraysWith(DefaultIndenter.SYSTEM_LINEFEED_INSTANCE);
StringBuilder sb = new StringBuilder();
JsonGenerator jg = mapper.getFactory().createGenerator(CharStreams.asWriter(sb))
.setPrettyPrinter(prettyPrinter);
jg.writeTree(node);
jg.close();
System.out.println(sb.toString().replace("\"", "\\\"").replace(DefaultIndenter.SYS_LF,
"\"" + DefaultIndenter.SYS_LF + " + \""));
}
@Override
public void serialize(JSONOptions value, JsonGenerator jgen, SerializerProvider provider) throws IOException,
JsonGenerationException {
if (value.opaque != null) {
jgen.writeObject(value.opaque);
} else {
jgen.writeTree(value.root);
}
}
@Override
public void serialize(
Schema schema,
JsonGenerator jsonGenerator,
SerializerProvider serializerProvider
) throws IOException {
jsonGenerator.writeTree(jsonConverter.asJsonSchema(schema));
}
public static String toString(FieldMapping mapping) {
StringWriter writer = new StringWriter();
JsonGenerator gen;
try {
gen = new JsonFactory().createGenerator(writer);
gen.setCodec(new ObjectMapper());
gen.writeTree(toJson(mapping));
gen.close();
} catch (IOException e) {
throw new DatasetIOException("Cannot write to JSON generator", e);
}
return writer.toString();
}
@Override
public void serialize(JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeStringField("op", op);
gen.writeStringField("path", path.toString());
gen.writeFieldName("oldValue");
gen.writeTree(oldValue);
gen.writeFieldName("value");
gen.writeTree(newValue);
gen.writeEndObject();
}
@Override
public final void serialize(final JsonGenerator jgen,
final SerializerProvider provider) throws IOException {
jgen.writeStartObject();
jgen.writeStringField("op", op);
jgen.writeStringField("path", path.toString());
jgen.writeFieldName("value");
jgen.writeTree(value);
jgen.writeEndObject();
}
/**
* Formats the {@code node} as a string using the pretty printer.
*/
public static String jsonPretty(JsonNode node) throws IOException {
StringBuilder buf = new StringBuilder();
JsonGenerator gen = JSON_FACTORY.createGenerator(new StringBuilderWriter(buf));
gen.useDefaultPrettyPrinter();
gen.setCodec(JsonUtils.getMapper());
gen.writeTree(node);
return buf.toString();
}
private static String writeConfigAsString(ObjectNode rootObjectNode, List<String> keyOrder)
throws IOException {
ObjectNode orderedRootObjectNode = getOrderedObjectNode(rootObjectNode, keyOrder);
ObjectMappers.stripEmptyContainerNodes(orderedRootObjectNode);
StringBuilder sb = new StringBuilder();
JsonGenerator jg = mapper.getFactory().createGenerator(CharStreams.asWriter(sb));
try {
jg.setPrettyPrinter(ObjectMappers.getPrettyPrinter());
jg.writeTree(orderedRootObjectNode);
} finally {
jg.close();
}
// newline is not required, just a personal preference
return sb.toString() + ObjectMappers.NEWLINE;
}
private void appendExpressionJson(final JsonGenerator gen, final Expression expression) throws IOException {
if (expression == null) {
gen.writeNull();
} else {
try {
final JsonNode tree = expression.accept(new ExpressionJsonVisitor());
gen.writeTree(tree);
} catch (final ODataException e) {
gen.writeString("Exception in Debug Expression visitor occurred: " + e.getMessage());
}
}
}
@Override
public void serialize(UnknownOptionsObject value, JsonGenerator gen, SerializerProvider serializers)
throws IOException {
gen.writeTree(value.content);
}
@Override
public void serializeWithType(UnknownOptionsObject value, JsonGenerator gen, SerializerProvider serializers,
TypeSerializer typeSer) throws IOException {
gen.writeTree(value.content);
}
@Override
public void serialize(UnknownRequestContainer value, JsonGenerator gen, SerializerProvider serializers)
throws IOException {
gen.writeTree(value.content);
}
@Override
public void serializeWithType(UnknownRequestContainer value, JsonGenerator gen, SerializerProvider serializers,
TypeSerializer typeSer) throws IOException {
gen.writeTree(value.content);
}
@Override
public void serialize(UnknownRequestAspect value, JsonGenerator gen, SerializerProvider serializers)
throws IOException {
gen.writeTree(value.content);
}
@Override
public void serializeWithType(UnknownRequestAspect value, JsonGenerator gen, SerializerProvider serializers,
TypeSerializer typeSer) throws IOException {
gen.writeTree(value.content);
}