List of usage examples for com.fasterxml.jackson.core JsonGenerator writeTree
public abstract void writeTree(TreeNode rootNode) throws IOException, JsonProcessingException;
From source file:org.soulwing.prospecto.jackson.ViewSerializer.java
@Override public void serialize(View view, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); writerFactory.newWriter(view, outputStream).writeView(); final ObjectMapper mapper = new ObjectMapper(); final ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); jsonGenerator.writeTree(mapper.readTree(inputStream)); }
From source file:scott.barleyrs.rest.QueryResultMessageBodyWriter.java
@Override public void writeTo(QueryResult<?> result, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException { System.out.println("converting QueryResult to JSON"); result.getEntityContext().setEntityContextState(EntityContextState.INTERNAL); try {//from w ww . j a v a2 s. c om ObjectMapper mapper = new ObjectMapper(); JsonGenerator gen = mapper.getFactory().createGenerator(entityStream); ArrayNode array = mapper.createArrayNode(); for (Entity entity : result.getEntityList()) { Set<Entity> started = new HashSet<>(); array.add(toJson(mapper, entity, started)); } gen.writeTree(array); } finally { result.getEntityContext().setEntityContextState(EntityContextState.USER); } }
From source file:org.kitesdk.apps.scheduled.Schedule.java
public String toString() { StringWriter writer = new StringWriter(); try {//from w w w .ja va2s.c om JsonGenerator gen = new JsonFactory().createGenerator(writer); gen.setCodec(new ObjectMapper()); gen.writeTree(toJson()); gen.close(); } catch (IOException e) { // An IOException should not be possible against a local buffer. throw new AssertionError(e); } return writer.toString(); }
From source file:com.github.jonpeterson.jackson.module.interceptor.JsonInterceptingSerializer.java
@Override public void serialize(T value, JsonGenerator generator, SerializerProvider provider) throws IOException { // serialize the value into a byte array buffer then parse it back out into a JsonNode tree // TODO: find a better way to convert the value into a tree JsonFactory factory = generator.getCodec().getFactory(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(4096); JsonGenerator bufferGenerator = factory.createGenerator(buffer); try {// w w w . java2s. c om delegate.serialize(value, bufferGenerator, provider); } finally { bufferGenerator.close(); } JsonNode jsonNode = factory.createParser(buffer.toByteArray()).readValueAsTree(); // execute interceptors on node for (JsonInterceptor interceptor : interceptors) jsonNode = interceptor.intercept(jsonNode, jsonNodeFactory); // write node generator.writeTree(jsonNode); }
From source file:com.github.jonpeterson.jackson.module.versioning.VersionedModelSerializer.java
private void doSerialize(T value, JsonGenerator generator, SerializerProvider provider, TypeSerializer typeSerializer) throws IOException { // serialize the value into a byte array buffer then parse it back out into a JsonNode tree // TODO: find a better way to convert the value into a tree JsonFactory factory = generator.getCodec().getFactory(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(4096); JsonGenerator bufferGenerator = factory.createGenerator(buffer); try {/*from ww w . ja va 2s . com*/ if (typeSerializer != null) delegate.serializeWithType(value, bufferGenerator, provider, typeSerializer); else delegate.serialize(value, bufferGenerator, provider); } finally { bufferGenerator.close(); } ObjectNode modelData = factory.createParser(buffer.toByteArray()).readValueAsTree(); // set target version to @SerializeToVersion's value, @JsonVersionModel's defaultSerializeToVersion, or // @JsonVersionModel's currentVersion in that order String targetVersion = null; if (serializeToVersionProperty != null) { targetVersion = (String) serializeToVersionProperty.getAccessor().getValue(value); modelData.remove(serializeToVersionProperty.getName()); } if (targetVersion == null) targetVersion = jsonVersionedModel.defaultSerializeToVersion(); if (targetVersion.isEmpty()) targetVersion = jsonVersionedModel.currentVersion(); // convert model data if there is a converter and targetVersion is different than the currentVersion or if // alwaysConvert is true if (converter != null && (jsonVersionedModel.alwaysConvert() || !targetVersion.equals(jsonVersionedModel.currentVersion()))) modelData = converter.convert(modelData, jsonVersionedModel.currentVersion(), targetVersion, JsonNodeFactory.instance); // add target version to model data if it wasn't the version to suppress if (!targetVersion.equals(jsonVersionedModel.versionToSuppressPropertySerialization())) modelData.put(jsonVersionedModel.propertyName(), targetVersion); // write node generator.writeTree(modelData); }
From source file:com.microsoft.rest.serializer.FlatteningSerializer.java
@Override public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if (value == null) { jgen.writeNull();/* w w w . j a v a2s . c o m*/ return; } // BFS for all collapsed properties ObjectNode root = mapper.valueToTree(value); ObjectNode res = root.deepCopy(); Queue<ObjectNode> source = new LinkedBlockingQueue<ObjectNode>(); Queue<ObjectNode> target = new LinkedBlockingQueue<ObjectNode>(); source.add(root); target.add(res); while (!source.isEmpty()) { ObjectNode current = source.poll(); ObjectNode resCurrent = target.poll(); Iterator<Map.Entry<String, JsonNode>> fields = current.fields(); while (fields.hasNext()) { Map.Entry<String, JsonNode> field = fields.next(); ObjectNode node = resCurrent; String key = field.getKey(); JsonNode outNode = resCurrent.get(key); if (field.getKey().matches(".+[^\\\\]\\..+")) { String[] values = field.getKey().split("((?<!\\\\))\\."); for (int i = 0; i < values.length; ++i) { values[i] = values[i].replace("\\.", "."); if (i == values.length - 1) { break; } String val = values[i]; if (node.has(val)) { node = (ObjectNode) node.get(val); } else { ObjectNode child = new ObjectNode(JsonNodeFactory.instance); node.put(val, child); node = child; } } node.set(values[values.length - 1], resCurrent.get(field.getKey())); resCurrent.remove(field.getKey()); outNode = node.get(values[values.length - 1]); } if (field.getValue() instanceof ObjectNode) { source.add((ObjectNode) field.getValue()); target.add((ObjectNode) outNode); } else if (field.getValue() instanceof ArrayNode && (field.getValue()).size() > 0 && (field.getValue()).get(0) instanceof ObjectNode) { Iterator<JsonNode> sourceIt = field.getValue().elements(); Iterator<JsonNode> targetIt = outNode.elements(); while (sourceIt.hasNext()) { source.add((ObjectNode) sourceIt.next()); target.add((ObjectNode) targetIt.next()); } } } } jgen.writeTree(res); }
From source file:org.fao.geonet.domain.SettingToObjectSerializer.java
public static void writeSettingValue(Setting s, JsonGenerator jsonGenerator) throws IOException { try {/*from w ww.ja v a 2s . c om*/ if (StringUtils.isNotEmpty(s.getValue())) { if (s.getDataType() == SettingDataType.BOOLEAN) { jsonGenerator.writeBoolean(Boolean.parseBoolean(s.getValue())); } else if (s.getDataType() == SettingDataType.INT) { jsonGenerator.writeNumber(Integer.parseInt(s.getValue())); } else if (s.getDataType() == SettingDataType.JSON) { ObjectMapper mapper = new ObjectMapper(); jsonGenerator.writeTree(mapper.readTree(s.getValue())); } else { jsonGenerator.writeString(s.getValue()); } } else { jsonGenerator.writeNull(); } } catch (Exception e) { jsonGenerator.writeNull(); jsonGenerator.writeStringField("erroneousValue", s.getValue()); jsonGenerator.writeStringField("error", e.getMessage()); } }
From source file:org.sead.repositories.reference.RefRepository.java
protected static void generateIndex(InputStream ro, File descFile, File indexFile) throws JsonParseException, IOException { log.debug("Generating desc and index files"); JsonFactory f = new MappingJsonFactory(); // reading JsonParser jp = f.createParser(ro);/*from w w w . ja v a 2s . c o m*/ JsonGenerator generator = new JsonFactory().createGenerator(descFile, JsonEncoding.UTF8); JsonToken current; current = jp.nextToken(); report(jp, current); while ((current = jp.nextToken()) != null) { if (current.equals(JsonToken.FIELD_NAME)) { String fName = jp.getText(); if (fName.equals("describes")) { log.trace("describes"); while (((current = jp.nextToken()) != null)) { if (jp.isExpectedStartObjectToken()) { generator.setCodec(new ObjectMapper()); generator.useDefaultPrettyPrinter(); generator.writeStartObject(); while (((current = jp.nextToken()) != JsonToken.END_OBJECT)) { if (current != JsonToken.FIELD_NAME) { log.warn("Unexpected Token!"); report(jp, current); } else { report(jp, current); String name = jp.getText(); current = jp.nextToken(); // Get to start of // value if (!name.equals("aggregates")) { log.trace("Writing: " + name); generator.writeFieldName(name); generator.writeTree(jp.readValueAsTree()); } else { report(jp, current); log.trace("Skipping?"); if (current.isStructStart()) { indexChildren(indexFile, jp); // jp.skipChildren(); } else { log.warn("Was Not Struct start!"); } log.trace("Hit aggregates"); } } } generator.writeEndObject(); generator.close(); } } } } } }