java类com.google.protobuf.util.JsonFormat的实例源码

ProductDaoTest.java 文件源码 项目:grpc-mate 阅读 30 收藏 0 点赞 0 评论 0
@Test
public void upsertProduct() throws Exception {
  Product product = Product.newBuilder()
      .setProductId(faker.number().randomNumber())
      .setProductName(faker.company().name())
      .setProductPrice(faker.number().randomDouble(2, 10, 100))
      .setProductStatus(ProductStatus.InStock)
      .build();
  productDao.upsertProduct(product);
  esClient.admin().indices().flush(Requests.flushRequest(INDEX)).actionGet();

  GetResponse getResponse = esClient.prepareGet(INDEX, TYPE, String.valueOf(product.getProductId())).get();
  JsonFormat.Parser jsonParser = injector.getInstance(JsonFormat.Parser.class);
  Product.Builder builder = Product.newBuilder();
  jsonParser.merge(getResponse.getSourceAsString(), builder);
  assertThat(builder.build()).isEqualTo(product);
}
RouteGuideUtil.java 文件源码 项目:book_ldrtc 阅读 29 收藏 0 点赞 0 评论 0
/**
 * Parses the JSON input file containing the list of features.
 */
public static List<Feature> parseFeatures(URL file) throws IOException {
  InputStream input = file.openStream();
  try {
    Reader reader = new InputStreamReader(input);
    try {
      FeatureDatabase.Builder database = FeatureDatabase.newBuilder();
      JsonFormat.parser().merge(reader, database);
      return database.getFeatureList();
    } finally {
      reader.close();
    }
  } finally {
    input.close();
  }
}
ElasticSearchModule.java 文件源码 项目:grpc-mate 阅读 32 收藏 0 点赞 0 评论 0
@Override
protected void configure() {
  bind(Configuration.class).toProvider(ConfigurationProvider.class).in(Singleton.class);
  bind(TransportClient.class).toProvider(TransportClientProvider.class).in(Singleton.class);
  bind(JsonFormat.Printer.class).toInstance(JsonFormat.printer());
  bind(JsonFormat.Parser.class).toInstance(JsonFormat.parser());
}
DatastoreToGcsTest.java 文件源码 项目:teleport 阅读 23 收藏 0 点赞 0 评论 0
@Test
public void testDatastoreToGcs_EntityToJson_noTransform() throws Exception {
  DoFnTester<Entity, String> fnTester = DoFnTester.of(EntityToJson.newBuilder()
      .setJsTransformPath(StaticValueProvider.of(null))
      .setJsTransformFunctionName(StaticValueProvider.of(null))
      .build());

  Builder entityBuilder = Entity.newBuilder();
  JsonFormat.parser().usingTypeRegistry(
      TypeRegistry.newBuilder()
          .add(Entity.getDescriptor())
          .build())
      .merge(mEntityJson, entityBuilder);

  Entity entity = entityBuilder.build();
  List<String> entityJsonOutputs = fnTester.processBundle(entity);
  Assert.assertEquals(mEntityJson, entityJsonOutputs.get(0));
}
DatastoreToGcsTest.java 文件源码 项目:teleport 阅读 27 收藏 0 点赞 0 评论 0
@Test
public void testDatastoreToGcs_EntityToJson_withTransform() throws Exception {
  DoFnTester<Entity, String> fnTester = DoFnTester.of(EntityToJson.newBuilder()
      .setJsTransformPath(StaticValueProvider.of(jsTransformPath))
      .setJsTransformFunctionName(StaticValueProvider.of("transform"))
      .build());

  Builder entityBuilder = Entity.newBuilder();
  JsonFormat.parser().usingTypeRegistry(
      TypeRegistry.newBuilder()
          .add(Entity.getDescriptor())
          .build())
      .merge(mEntityJson, entityBuilder);

  Entity entity = entityBuilder.build();
  List<String> entityJsonOutputs = fnTester.processBundle(entity);
  Assert.assertEquals(mTransformedEntityJson, entityJsonOutputs.get(0));
}
GcsToDatastoreTest.java 文件源码 项目:teleport 阅读 26 收藏 0 点赞 0 评论 0
@Test
public void testGcsToDatastore_EntityToJson_noTransform() throws Exception {
  DoFnTester<String, Entity> fnTester = DoFnTester.of(JsonToEntity.newBuilder()
      .setJsTransformPath(StaticValueProvider.of(null))
      .setJsTransformFunctionName(StaticValueProvider.of(null))
      .build());
  List<Entity> output = fnTester.processBundle(mEntityJson);
  Entity outputEntity = output.get(0);

  Printer printer = JsonFormat.printer()
      .omittingInsignificantWhitespace()
      .usingTypeRegistry(
          TypeRegistry.newBuilder()
              .add(Entity.getDescriptor())
              .build());
  Assert.assertEquals(mEntityJson, printer.print(outputEntity));
}
DatastoreToBqTest.java 文件源码 项目:teleport 阅读 27 收藏 0 点赞 0 评论 0
@Test
public void testDatastoreToBq_EntityToTableRow_notransform() throws Exception, IOException {
  DoFnTester<Entity, TableRow> fnTester = DoFnTester.of(EntityToTableRow.newBuilder()
      .setStrictCast(StaticValueProvider.of(true))
      .setTableSchemaJson(StaticValueProvider.of(mTableSchemaJson))
      .setJsTransformFunctionName(StaticValueProvider.of(null))
      .setJsTransformPath(StaticValueProvider.of(null))
  .build());

  Builder entityBuilder = Entity.newBuilder();
  JsonFormat.parser().usingTypeRegistry(
      TypeRegistry.newBuilder()
          .add(Entity.getDescriptor())
          .build())
      .merge(mEntityJson, entityBuilder);

  Entity entity = entityBuilder.build();
  List<TableRow> tableRows = fnTester.processBundle(entity);
  TableRow tr = tableRows.get(0);

  Assert.assertEquals(1, tableRows.size());
  Assert.assertEquals("key(Drawing, '31ce830e-91d0-405e-855a-abe416cadc1f')", tr.get("__key__"));
  Assert.assertEquals("79a1d9d9-e255-427a-9b09-f45157e97790", tr.get("canvasId"));
}
FeatureSupportTest.java 文件源码 项目:outland 阅读 25 收藏 0 点赞 0 评论 0
@Test
public void testToFeature() throws Exception {

  Feature feature = Feature.newBuilder()
      .setId("id1")
      .setKey("key1")
      .setGroup("app1")
      .setDescription("desc1")
      .setStatus(Status.off)
      .build();

  final String json = JsonFormat.printer().print(feature);

  final Feature feature1 = FeatureSupport.toFeature(json);

  assertEquals(feature.getId(), feature1.getId());
  assertEquals(feature.getKey(), feature1.getKey());
  assertEquals(feature.getGroup(), feature1.getGroup());
  assertEquals(feature.getDescription(), feature1.getDescription());
  assertEquals(feature.getStatus(), feature1.getStatus());

}
ProtobufUtil.java 文件源码 项目:ja-micro 阅读 28 收藏 0 点赞 0 评论 0
/**
 * Converts a protobuf message to a JSON object
 * <p>
 * Note: Preserves the field names as defined in the *.proto definition
 * Note:
 *
 * @param input the protobuf message to convert
 * @return the converted JSON object
 */
public static JsonObject protobufToJsonWithDefaultValues(Message input) {
    JsonObject object = new JsonObject();
    if (input == null) {
        logger.warn("Protobuf message was null");
    } else {
        try {
            String jsonString = JsonFormat.printer()
                .preservingProtoFieldNames()
                .includingDefaultValueFields()
                .print(input);
            object = new JsonParser().parse(jsonString).getAsJsonObject();
        } catch (Exception e) {
            throw new RuntimeException("Error deserializing protobuf to json", e);
        }
    }
    return object;
}
BaseSC2Client.java 文件源码 项目:sc2-java-api 阅读 27 收藏 0 点赞 0 评论 0
public synchronized ListenableFuture<Response> sendRawRequest(Request req) {
  SettableListenableFuture<Response> slf = new SettableListenableFuture<Response>();
  if(isConnected()) {
    try {
      if(log.isDebugEnabled()) {
        log.debug("Sending Message:{}",  JsonFormat.printer().omittingInsignificantWhitespace().print(req));
      }
    } catch (InvalidProtocolBufferException e) {
      throw new RuntimeException(e);
    }
    responseQueue.add(slf);
    client.write(WebSocketFrameParser.makeWebSocketFrame(req.toByteArray().length, WebSocketOpCode.Binary.getValue(), false).getRawFrame());
    client.write(ByteBuffer.wrap(req.toByteArray()));
    return slf;
  }
  slf.setFailure(new IOException("Client is not connected!"));
  return slf;
}
ServiceConfigSupplierTest.java 文件源码 项目:endpoints-management-java 阅读 27 收藏 0 点赞 0 评论 0
@Test
public void testFetchConfigWithWrongServiceName() throws InvalidProtocolBufferException {
  when(mockEnvironment.getVariable("ENDPOINTS_SERVICE_NAME")).thenReturn(SERVICE_NAME);
  when(mockEnvironment.getVariable("ENDPOINTS_SERVICE_VERSION")).thenReturn(SERVICE_VERSION);

  Service service = Service.newBuilder().setName("random-name").build();
  String content = JsonFormat.printer().print(service);
  testHttpTransport.addResponse(200, content);

  try {
    fetcher.get();
    fail();
  } catch (ServiceConfigException exception) {
    assertEquals(
        "Unexpected service name in service config: random-name", exception.getMessage());
  }
}
ServiceConfigSupplierTest.java 文件源码 项目:endpoints-management-java 阅读 28 收藏 0 点赞 0 评论 0
@Test
public void testFetchConfigWithWrongServiceVersion() throws InvalidProtocolBufferException {
  when(mockEnvironment.getVariable("ENDPOINTS_SERVICE_NAME")).thenReturn(SERVICE_NAME);
  when(mockEnvironment.getVariable("ENDPOINTS_SERVICE_VERSION")).thenReturn(SERVICE_VERSION);

  Service service = Service.newBuilder()
      .setName(SERVICE_NAME)
      .setId("random-version")
      .build();
  String content = JsonFormat.printer().print(service);
  testHttpTransport.addResponse(200, content);

  try {
    fetcher.get();
    fail();
  } catch (ServiceConfigException exception) {
    assertEquals(
        "Unexpected service version in service config: random-version", exception.getMessage());
  }
}
RouteGuideUtil.java 文件源码 项目:grpc-sample 阅读 28 收藏 0 点赞 0 评论 0
/**
 * Parses the JSON input file containing the list of features.
 */
public static List<Feature> parseFeatures(URL file) throws IOException {
  InputStream input = file.openStream();
  try {
    Reader reader = new InputStreamReader(input);
    try {
      FeatureDatabase.Builder database = FeatureDatabase.newBuilder();
      JsonFormat.parser().merge(reader, database);
      return database.getFeatureList();
    } finally {
      reader.close();
    }
  } finally {
    input.close();
  }
}
IndividualPokemonRepository.java 文件源码 项目:pokebattler-fight 阅读 32 收藏 0 点赞 0 评论 0
public IndividualPokemonRepository(String file) throws Exception {
    String legacy = null;
    if (!file.equals(POKEMONGO_JSON)) {
        legacy = file.substring(0, 8);
    }
    final InputStream is = this.getClass().getResourceAsStream(file);
    if (is == null) {
        throw new IllegalArgumentException("Can not find " + file);
    }
    mapper = new ObjectMapper();
    mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
    printer = JsonFormat.printer().includingDefaultValueFields();
    final RawData rawData = mapper.readValue(is, RawData.class);
    all = createPokemons(rawData, legacy);
    pokemonMap = all.getPokemonList().stream().collect(Collectors.toMap(p -> p.getPokemonId(), p -> p));
    log.info("Loaded {} pokemons", all.getPokemonCount());
}
VendorExtensionProtoConverter.java 文件源码 项目:api-compiler 阅读 26 收藏 0 点赞 0 评论 0
@SuppressWarnings("unchecked")
public <T extends Message> T convertJsonToProto(T prototype, String json, String extensionName) {
  try {
    Builder builder = prototype.newBuilderForType();
    JsonFormat.parser().merge(json, builder);
    return (T) builder.build();
  } catch (InvalidProtocolBufferException ex) {
    diagCollector.addDiag(
        Diag.error(
            new SimpleLocation(extensionName),
            "Extension %s cannot be converted into proto type %s. Details: %s",
            extensionName,
            prototype.getDescriptorForType().getFullName(),
            ex.getMessage()));
    return prototype;
  }
}
ClientRpcStore.java 文件源码 项目:seldon-server 阅读 22 收藏 0 点赞 0 评论 0
private JsonNode getDefaultRequestJSON(Message msg) throws JsonParseException, IOException
{
    Message.Builder o2 = DefaultCustomPredictRequest.newBuilder();
    TypeRegistry registry = TypeRegistry.newBuilder().add(o2.getDescriptorForType()).build();
    JsonFormat.Printer jPrinter = JsonFormat.printer();
    String result = jPrinter.usingTypeRegistry(registry).print(msg);
    ObjectMapper mapper = new ObjectMapper();
    JsonFactory factory = mapper.getFactory();
    JsonParser parser = factory.createParser(result);
    JsonNode jNode = mapper.readTree(parser);
    if (jNode.has(PredictionBusinessServiceImpl.REQUEST_CUSTOM_DATA_FIELD))
    {
        JsonNode values = jNode.get(PredictionBusinessServiceImpl.REQUEST_CUSTOM_DATA_FIELD).get("values");
        ((ObjectNode) jNode).set(PredictionBusinessServiceImpl.REQUEST_CUSTOM_DATA_FIELD, values);
    }
    return jNode;
}
ClientRpcStore.java 文件源码 项目:seldon-server 阅读 22 收藏 0 点赞 0 评论 0
public ClassificationReply getPredictReplyFromJson(String client,JsonNode json)
{
    RPCConfig config = services.get(client);
    try
    {
        TypeRegistry registry = null;
        if (config != null && config.replyClass != null && json.has(PredictionBusinessServiceImpl.REPLY_CUSTOM_DATA_FIELD))
        {
            if (!json.get(PredictionBusinessServiceImpl.REPLY_CUSTOM_DATA_FIELD).has("@type"))
                ((ObjectNode) json.get(PredictionBusinessServiceImpl.REPLY_CUSTOM_DATA_FIELD)).put("@type", "type.googleapis.com/" + config.replyClass.getName());
            Method m = config.replyBuilder;
            Message.Builder o = (Message.Builder) m.invoke(null);
            registry = TypeRegistry.newBuilder().add(o.getDescriptorForType()).build();
        }
        ClassificationReply.Builder builder = ClassificationReply.newBuilder();
        JsonFormat.Parser jFormatter = JsonFormat.parser();
        if (registry != null)
            jFormatter = jFormatter.usingTypeRegistry(registry);
        jFormatter.merge(json.toString(), builder);
        ClassificationReply reply = builder.build();
        return reply;
    } catch (Exception e) {
        logger.error("Failed to convert json "+json.toString()+" to PredictReply",e);
        return null;
    }
}
ClientRpcStore.java 文件源码 项目:seldon-server 阅读 31 收藏 0 点赞 0 评论 0
private ClassificationRequest getPredictRequestWithCustomDefaultFromJSON(JsonNode json) throws InvalidProtocolBufferException
  {
    ObjectMapper mapper = new ObjectMapper();
    ObjectNode data = mapper.createObjectNode();
    data.put("@type", "type.googleapis.com/" + DefaultCustomPredictRequest.class.getName());
    data.put("values", json.get(PredictionBusinessServiceImpl.REQUEST_CUSTOM_DATA_FIELD));
    ((ObjectNode) json).put(PredictionBusinessServiceImpl.REQUEST_CUSTOM_DATA_FIELD, data);
Message.Builder o = DefaultCustomPredictRequest.newBuilder();
TypeRegistry registry = TypeRegistry.newBuilder().add(o.getDescriptorForType()).build();
ClassificationRequest.Builder builder = ClassificationRequest.newBuilder();
JsonFormat.Parser jFormatter = JsonFormat.parser();
if (registry != null)
    jFormatter = jFormatter.usingTypeRegistry(registry);
jFormatter.merge(json.toString(), builder);
ClassificationRequest request = builder.build();
return request;
  }
ProtobufJsonTest.java 文件源码 项目:compliance 阅读 27 收藏 0 点赞 0 评论 0
@Test
@Category(ProtobufJsonTests.class)
public void ProtobufGeneratesSimpleJSONSearchVariantsRequest() throws Exception {

    SearchVariantsRequest svr = SearchVariantsRequest.newBuilder()
            .addAllCallSetIds(Arrays.asList("foo", "bar"))
            .setReferenceName("I.Am.The.Walrus")
            .setStart(500L)
            .setEnd(7654L)
            .setPageToken("snuffle.bunny")
            .setVariantSetId("great_variant_set_id")
            .build();
    String actual = JsonFormat.printer().print(svr);

    JSONAssert.assertEquals("{referenceName:I.Am.The.Walrus}", actual, false);
    JSONAssert.assertEquals("{callSetIds:[\"foo\", \"bar\"]}", actual, false);
    JSONAssert.assertEquals("{callSetIds:[\"bar\", \"foo\"]}", actual, false);
    JSONAssert.assertEquals("{variantSetId:\"great_variant_set_id\"}", actual, false);
}
SettingsManager.java 文件源码 项目:GDSC-SMLM 阅读 35 收藏 0 点赞 0 评论 0
/**
 * Write the message to a JSON string.
 *
 * @param message
 *            the message
 * @param flags
 *            the flags
 * @return the JSON string
 */
public static boolean toJSON(MessageOrBuilder message, Appendable output, int flags)
{
    try
    {
        if (printer == null)
            printer = JsonFormat.printer();
        Printer p = printer;
        if (BitFlags.anyNotSet(flags, FLAG_JSON_WHITESPACE))
            p = p.omittingInsignificantWhitespace();
        if (BitFlags.anySet(flags, FLAG_JSON_DEFAULT_VALUES))
            p = p.includingDefaultValueFields();
        p.appendTo(message, output);
        return true;
    }
    catch (IOException e)
    {
        if (BitFlags.anyNotSet(flags, FLAG_SILENT))
            IJ.log("Unable to write message: " + e.getMessage());
    }
    return false;
}
SettingsManager.java 文件源码 项目:GDSC-SMLM 阅读 33 收藏 0 点赞 0 评论 0
/**
 * Read the message from a JSON string.
 *
 * @param reader
 *            the reader
 * @param builder
 *            the builder
 * @param flags
 *            the flags
 * @return true, if successful
 */
public static boolean fromJSON(Reader reader, Message.Builder builder, int flags)
{
    try
    {
        if (parser == null)
            parser = JsonFormat.parser();
        parser.merge(reader, builder);
        return true;
    }
    catch (IOException e)
    {
        if (BitFlags.anyNotSet(flags, FLAG_SILENT))
            IJ.log("Unable to read message: " + e.getMessage());
    }
    return false;
}
FilePeakResults.java 文件源码 项目:GDSC-SMLM 阅读 29 收藏 0 点赞 0 评论 0
private Printer addMessage(StringBuilder sb, Printer printer, String name, MessageOrBuilder msg)
{
    try
    {
        if (printer == null)
            printer = JsonFormat.printer().omittingInsignificantWhitespace()
            //.includingDefaultValueFields()
            ;
        sb.append(String.format("#%s %s\n", name, printer.print(msg)));
    }
    catch (InvalidProtocolBufferException e)
    {
        // This shouldn't happen so throw it
        throw new NotImplementedException("Unable to serialise the " + name + " settings", e);
    }
    return printer;
}
JsonFormatFileTransportTest.java 文件源码 项目:bazel 阅读 28 收藏 0 点赞 0 评论 0
@Test
public void testCreatesFileAndWritesProtoJsonFormat() throws Exception {
  File output = tmp.newFile();

  BuildEventStreamProtos.BuildEvent started =
      BuildEventStreamProtos.BuildEvent.newBuilder()
          .setStarted(BuildStarted.newBuilder().setCommand("build"))
          .build();
  when(buildEvent.asStreamProto(Matchers.<BuildEventConverters>any())).thenReturn(started);
  JsonFormatFileTransport transport =
      new JsonFormatFileTransport(output.getAbsolutePath(), pathConverter);
  transport.sendBuildEvent(buildEvent, artifactGroupNamer);

  transport.close().get();
  try (InputStream in = new FileInputStream(output)) {
    Reader reader = new InputStreamReader(in);
    JsonFormat.Parser parser = JsonFormat.parser();
    BuildEventStreamProtos.BuildEvent.Builder builder =
        BuildEventStreamProtos.BuildEvent.newBuilder();
    parser.merge(reader, builder);
    assertThat(builder.build()).isEqualTo(started);
  }
}
LumongoIndexManager.java 文件源码 项目:lumongo 阅读 33 收藏 0 点赞 0 评论 0
public IndexCreateResponse createIndex(IndexCreateRequest request) throws Exception {
    globalLock.writeLock().lock();
    try {
        log.info("Creating index: <" + request.getIndexName() + ">:\n" + JsonFormat.printer().print(request));

        IndexConfig indexConfig = new IndexConfig(request);

        String indexName = indexConfig.getIndexName();
        if (indexMap.containsKey(indexName)) {
            throw new Exception("Index <" + indexName + "> already exist");
        }
        LumongoIndex i = LumongoIndex.createIndex(hazelcastManager, mongoConfig, clusterConfig, indexConfig);
        indexMap.put(indexConfig.getIndexName(), i);
        i.loadAllSegments();
        i.forceBalance(hazelcastManager.getMembers());

        log.info("Created index: <" + request.getIndexName() + ">");

        return IndexCreateResponse.newBuilder().build();
    }
    finally {
        globalLock.writeLock().unlock();
    }
}
IndexResource.java 文件源码 项目:lumongo 阅读 38 收藏 0 点赞 0 评论 0
@GET
@Produces({ MediaType.APPLICATION_JSON + ";charset=utf-8" })
public Response get(@Context Response response, @QueryParam(LumongoConstants.INDEX) String index, @QueryParam(LumongoConstants.PRETTY) boolean pretty) {

    try {
        StringBuilder responseBuilder = new StringBuilder();

        IndexConfig indexConfig = indexManager.getIndexConfig(index);

        responseBuilder.append("{");
        responseBuilder.append("\"indexName\": ");
        responseBuilder.append("\"");
        responseBuilder.append(indexConfig.getIndexName());
        responseBuilder.append("\"");
        responseBuilder.append(",");
        responseBuilder.append("\"numberOfSegments\": ");
        responseBuilder.append(indexConfig.getNumberOfSegments());
        responseBuilder.append(",");
        responseBuilder.append("\"indexSettings\": ");
        JsonFormat.Printer printer = JsonFormat.printer();
        responseBuilder.append(printer.print(indexConfig.getIndexSettings()));
        responseBuilder.append("}");

        String docString = responseBuilder.toString();

        if (pretty) {
            docString = JsonWriter.formatJson(docString);
        }

        return Response.status(LumongoConstants.SUCCESS).entity(docString).build();

    }
    catch (Exception e) {
        return Response.status(LumongoConstants.INTERNAL_ERROR).entity("Failed to get index names: " + e.getMessage()).build();
    }

}
RouteGuideUtil.java 文件源码 项目:grpc-java 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Parses the JSON input file containing the list of features.
 */
public static List<Feature> parseFeatures(URL file) throws IOException {
  InputStream input = file.openStream();
  try {
    Reader reader = new InputStreamReader(input, Charset.forName("UTF-8"));
    try {
      FeatureDatabase.Builder database = FeatureDatabase.newBuilder();
      JsonFormat.parser().merge(reader, database);
      return database.getFeatureList();
    } finally {
      reader.close();
    }
  } finally {
    input.close();
  }
}
DatastoreToGcs.java 文件源码 项目:teleport 阅读 28 收藏 0 点赞 0 评论 0
private JsonFormat.Printer getJsonPrinter() {
  if (mJsonPrinter == null) {
    TypeRegistry typeRegistry = TypeRegistry.newBuilder()
        .add(Entity.getDescriptor())
        .build();

    mJsonPrinter = JsonFormat.printer()
        .usingTypeRegistry(typeRegistry)
        .omittingInsignificantWhitespace();
  }
  return mJsonPrinter;
}
GcsToDatastore.java 文件源码 项目:teleport 阅读 32 收藏 0 点赞 0 评论 0
private JsonFormat.Parser getJsonParser() {
  if (mJsonParser == null) {
    TypeRegistry typeRegistry = TypeRegistry.newBuilder()
        .add(Entity.getDescriptor())
        .build();

    mJsonParser = JsonFormat.parser()
        .usingTypeRegistry(typeRegistry);
  }
  return mJsonParser;
}
GraphQlStreamObserver.java 文件源码 项目:rejoiner 阅读 29 收藏 0 点赞 0 评论 0
@Override
public void onNext(T value) {
  List<Value> path =
      dataFetchingEnvironment
          .getFieldTypeInfo()
          .getPath()
          .toList()
          .stream()
          .map(
              p ->
                  p instanceof Number
                      ? Value.newBuilder()
                          .setNumberValue(Double.parseDouble(p.toString()))
                          .build()
                      : Value.newBuilder().setStringValue(p.toString()).build())
          .collect(ImmutableList.toImmutableList());

  ListValue pathListVale =
      ListValue.newBuilder()
          .addAllValues(path)
          .addValues(Value.newBuilder().setNumberValue(pathIndex.incrementAndGet()))
          .build();

  R graphQlResponse = getData(value, pathListVale);

  rejoinerStreamingContext.responseStreamObserver().onNext(graphQlResponse);

  try {
    System.out.println(
        "Streaming response as Json: " + JsonFormat.printer().print(graphQlResponse));
  } catch (InvalidProtocolBufferException e) {
    throw new RuntimeException(e);
  }
}
ContentSupport.java 文件源码 项目:outland 阅读 23 收藏 0 点赞 0 评论 0
byte[] toJsonBytes(Message message) {
  try {
    String json = JsonFormat.printer().preservingProtoFieldNames().print(message);
    return json.getBytes(StandardCharsets.UTF_8);
  } catch (Exception e) {
    throw new FeatureException(Problem.localProblem(e.getMessage(), ""), e);
  }
}


问题


面经


文章

微信
公众号

扫码关注公众号