com.fasterxml.jackson.core.JsonGenerator#writeEndArray ( )源码实例Demo

下面列出了com.fasterxml.jackson.core.JsonGenerator#writeEndArray ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: jlibs   文件: Session.java
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;
    }
}
 
private void writeContentsConfig(JsonGenerator jsonGenerator, String key, String value) throws IOException {
    jsonGenerator.writeFieldName(key);
    jsonGenerator.writeStartArray();

    for (Map<String, String> config : extractConfigObject(value)) {
        jsonGenerator.writeStartObject();

        for(Entry<String, String> property : config.entrySet()) {
            writeProperty(jsonGenerator, property.getKey(), property.getValue());
        }

        jsonGenerator.writeEndObject();
    }

    jsonGenerator.writeEndArray();
}
 
源代码3 项目: iceberg   文件: NameMappingParser.java
private static void toJson(MappedField field, JsonGenerator generator) throws IOException {
  generator.writeStartObject();

  generator.writeNumberField(FIELD_ID, field.id());

  generator.writeArrayFieldStart(NAMES);
  for (String name : field.names()) {
    generator.writeString(name);
  }
  generator.writeEndArray();

  MappedFields nested = field.nestedMapping();
  if (nested != null) {
    generator.writeFieldName(FIELDS);
    toJson(nested, generator);
  }

  generator.writeEndObject();
}
 
源代码4 项目: kripton   文件: BindBeanSharedPreferences.java
/**
 * for attribute valueCharTypeArray serialization
 */
protected String serializeValueCharTypeArray(char[] value) {
  if (value==null) {
    return null;
  }
  KriptonJsonContext context=KriptonBinder.jsonBind();
  try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
    JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
    jacksonSerializer.writeStartObject();
    int fieldCount=0;
    if (value!=null)  {
      fieldCount++;
      int n=value.length;
      char item;
      // write wrapper tag
      jacksonSerializer.writeFieldName("valueCharTypeArray");
      jacksonSerializer.writeStartArray();
      for (int i=0; i<n; i++) {
        item=value[i];
        jacksonSerializer.writeNumber(item);
      }
      jacksonSerializer.writeEndArray();
    }
    jacksonSerializer.writeEndObject();
    jacksonSerializer.flush();
    return stream.toString();
  } catch(Exception e) {
    e.printStackTrace();
    throw(new KriptonRuntimeException(e.getMessage()));
  }
}
 
源代码5 项目: olingo-odata4   文件: DebugTabUri.java
private void appendURIResourceParts(final JsonGenerator gen, final List<UriResource> uriResourceParts)
    throws IOException {
  gen.writeStartArray();
  for (UriResource resource : uriResourceParts) {
    gen.writeStartObject();
    gen.writeStringField("uriResourceKind", resource.getKind().toString());
    gen.writeStringField("segment", resource.toString());
    if (resource instanceof UriResourcePartTyped) {
      appendType(gen, "type", ((UriResourcePartTyped) resource).getType());
      gen.writeBooleanField("isCollection", ((UriResourcePartTyped) resource).isCollection());
    }
    if (resource instanceof UriResourceEntitySet) {
      appendParameters(gen, "keys", ((UriResourceEntitySet) resource).getKeyPredicates());
      appendType(gen, "typeFilterOnCollection", ((UriResourceEntitySet) resource).getTypeFilterOnCollection());
      appendType(gen, "typeFilterOnEntry", ((UriResourceEntitySet) resource).getTypeFilterOnEntry());
    } else if (resource instanceof UriResourceNavigation) {
      appendParameters(gen, "keys", ((UriResourceNavigation) resource).getKeyPredicates());
      appendType(gen, "typeFilterOnCollection", ((UriResourceNavigation) resource).getTypeFilterOnCollection());
      appendType(gen, "typeFilterOnEntry", ((UriResourceNavigation) resource).getTypeFilterOnEntry());
    } else if (resource instanceof UriResourceFunction) {
      appendParameters(gen, "parameters", ((UriResourceFunction) resource).getParameters());
      appendParameters(gen, "keys", ((UriResourceFunction) resource).getKeyPredicates());
      appendType(gen, "typeFilterOnCollection", ((UriResourceFunction) resource).getTypeFilterOnCollection());
      appendType(gen, "typeFilterOnEntry", ((UriResourceFunction) resource).getTypeFilterOnEntry());
    } else if (resource instanceof UriResourceSingleton) {
      appendType(gen, "typeFilter", ((UriResourceSingleton) resource).getEntityTypeFilter());
    } else if (resource instanceof UriResourceComplexProperty) {
      appendType(gen, "typeFilter", ((UriResourceComplexProperty) resource).getComplexTypeFilter());
    }
    gen.writeEndObject();
  }
  gen.writeEndArray();
}
 
源代码6 项目: kripton   文件: StringBeanTable.java
/**
 * for attribute value2 serialization
 */
public static byte[] serializeValue2(String[] value) {
  if (value==null) {
    return null;
  }
  KriptonJsonContext context=KriptonBinder.jsonBind();
  try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
    JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
    jacksonSerializer.writeStartObject();
    int fieldCount=0;
    if (value!=null)  {
      fieldCount++;
      int n=value.length;
      String item;
      // write wrapper tag
      jacksonSerializer.writeFieldName("element");
      jacksonSerializer.writeStartArray();
      for (int i=0; i<n; i++) {
        item=value[i];
        if (item==null) {
          jacksonSerializer.writeNull();
        } else {
          jacksonSerializer.writeString(item);
        }
      }
      jacksonSerializer.writeEndArray();
    }
    jacksonSerializer.writeEndObject();
    jacksonSerializer.flush();
    return stream.toByteArray();
  } catch(Exception e) {
    e.printStackTrace();
    throw(new KriptonRuntimeException(e.getMessage()));
  }
}
 
源代码7 项目: protostuff   文件: JsonIOUtil.java
/**
 * Serializes the {@code messages} into the generator using the given schema.
 */
public static <T> void writeListTo(JsonGenerator generator, List<T> messages,
        Schema<T> schema, boolean numeric) throws IOException
{
    generator.writeStartArray();
    if (messages.isEmpty())
    {
        generator.writeEndArray();
        return;
    }

    final JsonOutput output = new JsonOutput(generator, numeric, schema);

    for (T m : messages)
    {
        generator.writeStartObject();

        schema.writeTo(output, m);
        if (output.isLastRepeated())
            generator.writeEndArray();

        generator.writeEndObject();
        output.reset();
    }

    generator.writeEndArray();
}
 
源代码8 项目: cassandra-mesos-deprecated   文件: JaxRsUtils.java
public static void writeSeedIps(@NotNull final CassandraCluster cluster, @NotNull final JsonGenerator json) throws IOException {
    json.writeArrayFieldStart("seeds");
    for (final String seed : cluster.getSeedNodeIps(false)) {
        json.writeString(seed);
    }
    json.writeEndArray();
}
 
源代码9 项目: BIMserver   文件: JsonHandler.java
private void processMultiRequest(ArrayNode requests, String jsonToken, String oAuthCode, HttpServletRequest httpRequest, JsonGenerator out) throws Exception {
	out.writeFieldName("responses");
	out.writeStartArray();
	for (int r = 0; r < requests.size(); r++) {
		try {
			processSingleRequest((ObjectNode) requests.get(r), jsonToken, oAuthCode, httpRequest, out);
		} catch (Exception e) {
			handleThrowable(out, e);
		}
	}
	out.writeEndArray();
}
 
源代码10 项目: kripton   文件: BeanTable.java
/**
 * for attribute valueDoubleSet serialization
 */
public static byte[] serializeValueDoubleSet(HashSet<Double> value) {
  if (value==null) {
    return null;
  }
  KriptonJsonContext context=KriptonBinder.jsonBind();
  try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
    JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
    jacksonSerializer.writeStartObject();
    int fieldCount=0;
    if (value!=null)  {
      fieldCount++;
      // write wrapper tag
      jacksonSerializer.writeFieldName("element");
      jacksonSerializer.writeStartArray();
      for (Double item: value) {
        if (item==null) {
          jacksonSerializer.writeNull();
        } else {
          jacksonSerializer.writeNumber(item);
        }
      }
      jacksonSerializer.writeEndArray();
    }
    jacksonSerializer.writeEndObject();
    jacksonSerializer.flush();
    return stream.toByteArray();
  } catch(Exception e) {
    e.printStackTrace();
    throw(new KriptonRuntimeException(e.getMessage()));
  }
}
 
源代码11 项目: kripton   文件: IntBeanTable.java
/**
 * for attribute value2 serialization
 */
public static byte[] serializeValue2(Integer[] value) {
  if (value==null) {
    return null;
  }
  KriptonJsonContext context=KriptonBinder.jsonBind();
  try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
    JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
    jacksonSerializer.writeStartObject();
    int fieldCount=0;
    if (value!=null)  {
      fieldCount++;
      int n=value.length;
      Integer item;
      // write wrapper tag
      jacksonSerializer.writeFieldName("element");
      jacksonSerializer.writeStartArray();
      for (int i=0; i<n; i++) {
        item=value[i];
        if (item==null) {
          jacksonSerializer.writeNull();
        } else {
          jacksonSerializer.writeNumber(item);
        }
      }
      jacksonSerializer.writeEndArray();
    }
    jacksonSerializer.writeEndObject();
    jacksonSerializer.flush();
    return stream.toByteArray();
  } catch(Exception e) {
    e.printStackTrace();
    throw(new KriptonRuntimeException(e.getMessage()));
  }
}
 
源代码12 项目: glowroot   文件: TraceCommonService.java
private static void writeJson(Trace.Entry entry, JsonGenerator jg) throws IOException {
    jg.writeNumberField("startOffsetNanos", entry.getStartOffsetNanos());
    jg.writeNumberField("durationNanos", entry.getDurationNanos());
    if (entry.getActive()) {
        jg.writeBooleanField("active", true);
    }
    if (entry.hasQueryEntryMessage()) {
        jg.writeObjectFieldStart("queryMessage");
        Trace.QueryEntryMessage queryMessage = entry.getQueryEntryMessage();
        jg.writeNumberField("sharedQueryTextIndex", queryMessage.getSharedQueryTextIndex());
        jg.writeStringField("prefix", queryMessage.getPrefix());
        jg.writeStringField("suffix", queryMessage.getSuffix());
        jg.writeEndObject();
    } else {
        jg.writeStringField("message", entry.getMessage());
    }
    List<Trace.DetailEntry> detailEntries = entry.getDetailEntryList();
    if (!detailEntries.isEmpty()) {
        jg.writeFieldName("detail");
        writeDetailEntries(detailEntries, jg);
    }
    List<Proto.StackTraceElement> locationStackTraceElements =
            entry.getLocationStackTraceElementList();
    if (!locationStackTraceElements.isEmpty()) {
        jg.writeArrayFieldStart("locationStackTraceElements");
        for (Proto.StackTraceElement stackTraceElement : locationStackTraceElements) {
            writeStackTraceElement(stackTraceElement, jg);
        }
        jg.writeEndArray();
    }
    if (entry.hasError()) {
        jg.writeFieldName("error");
        writeError(entry.getError(), jg);
    }
}
 
@Override
public final void serialize(C value, JsonGenerator gen, SerializerProvider ctxt) throws IOException {
    if (((_unwrapSingle == null) &&
            ctxt.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED))
            || (Boolean.TRUE.equals(_unwrapSingle))) {
        if (hasSingleElement(value)) {
            serializeContents(value, gen);
            return;
        }
    }
    gen.writeStartArray();
    serializeContents(value, gen);
    gen.writeEndArray();
}
 
源代码14 项目: kripton   文件: BeanDaoImpl.java
/**
 * for param serializer2 serialization
 */
private byte[] serializer2(HashMap<EnumType, Byte> value) {
  if (value==null) {
    return null;
  }
  KriptonJsonContext context=KriptonBinder.jsonBind();
  try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
    JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
    int fieldCount=0;
    jacksonSerializer.writeStartObject();
    if (value!=null)  {
      // write wrapper tag
      if (value.size()>0) {
        jacksonSerializer.writeFieldName("element");
        jacksonSerializer.writeStartArray();
        for (Map.Entry<EnumType, Byte> item: value.entrySet()) {
          jacksonSerializer.writeStartObject();
          jacksonSerializer.writeStringField(null, item.getKey().toString());
          if (item.getValue()==null) {
            jacksonSerializer.writeNullField(null);
          } else {
            jacksonSerializer.writeNumberField(null, item.getValue());
          }
          jacksonSerializer.writeEndObject();
        }
        jacksonSerializer.writeEndArray();
      } else {
        jacksonSerializer.writeNullField("element");
      }
    }
    jacksonSerializer.writeEndObject();
    jacksonSerializer.flush();
    return stream.toByteArray();
  } catch(Exception e) {
    e.printStackTrace();
    throw(new KriptonRuntimeException(e.getMessage()));
  }
}
 
源代码15 项目: kripton   文件: StringDaoImpl.java
/**
 * for param serializer1 serialization
 */
private byte[] serializer1(String[] value) {
  if (value==null) {
    return null;
  }
  KriptonJsonContext context=KriptonBinder.jsonBind();
  try (KriptonByteArrayOutputStream stream=new KriptonByteArrayOutputStream(); JacksonWrapperSerializer wrapper=context.createSerializer(stream)) {
    JsonGenerator jacksonSerializer=wrapper.jacksonGenerator;
    int fieldCount=0;
    jacksonSerializer.writeStartObject();
    if (value!=null)  {
      int n=value.length;
      String item;
      // write wrapper tag
      jacksonSerializer.writeFieldName("element");
      jacksonSerializer.writeStartArray();
      for (int i=0; i<n; i++) {
        item=value[i];
        if (item==null) {
          jacksonSerializer.writeNull();
        } else {
          jacksonSerializer.writeString(item);
        }
      }
      jacksonSerializer.writeEndArray();
    }
    jacksonSerializer.writeEndObject();
    jacksonSerializer.flush();
    return stream.toByteArray();
  } catch(Exception e) {
    e.printStackTrace();
    throw(new KriptonRuntimeException(e.getMessage()));
  }
}
 
源代码16 项目: iceberg   文件: NameMappingParser.java
private static void toJson(MappedFields mapping, JsonGenerator generator) throws IOException {
  generator.writeStartArray();

  for (MappedField field : mapping.fields()) {
    toJson(field, generator);
  }

  generator.writeEndArray();
}
 
public void serializeFromError(JsonStreamContext ctxt, @Nullable Exception error, Object value, JsonGenerator jgen, SerializerProvider configurableSerializerProvider) throws IOException {
    if (log.isDebugEnabled())
        log.debug("Recovering from json serialization error, serializing "+value+": "+error);

    if (BidiSerialization.isStrictSerialization())
        throw new JsonMappingException("Cannot serialize "
            + (ctxt!=null && !ctxt.inRoot() ? "object containing " : "")
            + value.getClass().getName()+" when strict serialization requested");

    if (WARNED_CLASSES.add(value.getClass().getCanonicalName())) {
        log.warn("Standard serialization not possible for "+value.getClass()+" ("+value+")", error);
    }
    JsonStreamContext newCtxt = jgen.getOutputContext();

    // very odd, but flush seems necessary when working with large objects; presumably a buffer which is allowed to clear itself?
    // without this, when serializing the large (1.5M) Server json object from BrooklynJacksonSerializerTest creates invalid json,
    // containing:  "foo":false,"{"error":true,...
    jgen.flush();

    boolean createObject = !newCtxt.inObject() || newCtxt.getCurrentName()!=null;
    if (createObject) {
        jgen.writeStartObject();
    }

    if (allowEmpty(value.getClass())) {
        // write nothing
    } else {

        jgen.writeFieldName("error");
        jgen.writeBoolean(true);

        jgen.writeFieldName("errorType");
        jgen.writeString(NotSerializableException.class.getCanonicalName());

        jgen.writeFieldName("type");
        jgen.writeString(value.getClass().getCanonicalName());

        jgen.writeFieldName("toString");
        jgen.writeString(value.toString());

        if (error!=null) {
            jgen.writeFieldName("causedByError");
            jgen.writeString(error.toString());
        }

    }

    if (createObject) {
        jgen.writeEndObject();
    }

    while (newCtxt!=null && !newCtxt.equals(ctxt)) {
        if (jgen.getOutputContext().inArray()) { jgen.writeEndArray(); continue; }
        if (jgen.getOutputContext().inObject()) { jgen.writeEndObject(); continue; }
        break;
    }

}
 
源代码18 项目: kripton   文件: TranslationBindMap.java
@Override
public int serializeOnJacksonAsString(Translation object, JsonGenerator jacksonSerializer) throws
    Exception {
  jacksonSerializer.writeStartObject();
  int fieldCount=0;

  // Serialized Field:

  // field name (mapped with "name")
  if (object.getName()!=null)  {
    fieldCount++;
    jacksonSerializer.writeStringField("name", object.getName());
  }

  // field loop (mapped with "loop")
  jacksonSerializer.writeStringField("loop", PrimitiveUtils.writeBoolean(object.isLoop()));

  // field rate (mapped with "rate")
  jacksonSerializer.writeStringField("rate", PrimitiveUtils.writeFloat(object.getRate()));

  // field frames (mapped with "frames")
  if (object.frames!=null)  {
    fieldCount++;
    int n=object.frames.size();
    TranslationFrame item;
    // write wrapper tag
    jacksonSerializer.writeFieldName("frames");
    if (n>0) {
      jacksonSerializer.writeStartArray();
      for (int i=0; i<n; i++) {
        item=object.frames.get(i);
        if (item==null) {
          jacksonSerializer.writeString("null");
        } else {
          if (translationFrameBindMap.serializeOnJacksonAsString(item, jacksonSerializer)==0) {
            jacksonSerializer.writeNullField("frames");
          }
        }
      }
      jacksonSerializer.writeEndArray();
    } else {
      jacksonSerializer.writeString("");
    }
  }

  jacksonSerializer.writeEndObject();
  return fieldCount;
}
 
源代码19 项目: kripton   文件: MessageListResponseBindMap.java
@Override
public int serializeOnJacksonAsString(MessageListResponse object, JsonGenerator jacksonSerializer)
    throws Exception {
  jacksonSerializer.writeStartObject();
  int fieldCount=0;

  // Serialized Field:

  // field detailMessage (mapped with "detailMessage")
  if (object.getDetailMessage()!=null)  {
    fieldCount++;
    jacksonSerializer.writeStringField("detailMessage", object.getDetailMessage());
  }

  // field list (mapped with "list")
  if (object.getList()!=null)  {
    fieldCount++;
    int n=object.getList().size();
    Message item;
    // write wrapper tag
    jacksonSerializer.writeFieldName("list");
    if (n>0) {
      jacksonSerializer.writeStartArray();
      for (int i=0; i<n; i++) {
        item=object.getList().get(i);
        if (item==null) {
          jacksonSerializer.writeString("null");
        } else {
          if (messageBindMap.serializeOnJacksonAsString(item, jacksonSerializer)==0) {
            jacksonSerializer.writeNullField("list");
          }
        }
      }
      jacksonSerializer.writeEndArray();
    } else {
      jacksonSerializer.writeString("");
    }
  }

  // field status (mapped with "status")
  if (object.getStatus()!=null)  {
    fieldCount++;
    jacksonSerializer.writeStringField("status", object.getStatus().toString());
  }

  jacksonSerializer.writeEndObject();
  return fieldCount;
}
 
源代码20 项目: data-prep   文件: CommonAPI.java
/**
 * Describe the supported error codes.
 *
 * @param output the http response.
 */
@RequestMapping(value = "/api/errors", method = RequestMethod.GET, produces = APPLICATION_JSON_VALUE)
@ApiOperation(value = "Get all supported errors.", notes = "Returns the list of all supported errors.")
@Timed
public void listErrors(final OutputStream output) throws IOException {

    LOG.debug("Listing supported error codes");

    JsonFactory factory = new JsonFactory();
    JsonGenerator generator = factory.createGenerator(output);
    generator.setCodec(mapper);

    // start the errors array
    generator.writeStartArray();

    // write the direct known errors
    writeErrorsFromEnum(generator, CommonErrorCodes.values());
    writeErrorsFromEnum(generator, APIErrorCodes.values());

    // get dataset api errors
    HystrixCommand<InputStream> datasetErrors = getCommand(ErrorList.class, GenericCommand.DATASET_GROUP, DATASET);
    try (InputStream errorsInput = datasetErrors.execute()) {
        writeErrorsFromApi(generator, errorsInput);
    }

    // get preparation api errors
    HystrixCommand<InputStream> preparationErrors =
            getCommand(ErrorList.class, GenericCommand.PREPARATION_GROUP, PREPARATION);
    try (InputStream errorsInput = preparationErrors.execute()) {
        writeErrorsFromApi(generator, errorsInput);
    }

    // get transformation api errors
    HystrixCommand<InputStream> transformationErrors =
            getCommand(ErrorList.class, GenericCommand.TRANSFORM_GROUP, TRANSFORMATION);
    try (InputStream errorsInput = transformationErrors.execute()) {
        writeErrorsFromApi(generator, errorsInput);
    }

    // close the errors array
    generator.writeEndArray();
    generator.flush();
}