将GRPC protobuf响应转换为PHP数组而不映射

时间:2017-04-28 19:27:11

标签: php protocol-buffers grpc

我想知道是否有一种快速方法可以从GRPC客户端返回的\Google\Protobuf\Internal\Message对象中获取PHP数组,而无需将响应对象字段显式映射到数组。

GRPC tutorial似乎通过调用他们的getter来获取字段:

$point = new Routeguide\Point();
$point->setLatitude(409146138);
$point->setLongitude(-746188906);

// $feature is the response
list($feature, $status) = $client->GetFeature($point)->wait();

// Calling getters here
print sprintf("Found %s \n  at %f, %f\n", $feature->getName(),
              $feature->getLocation()->getLatitude() / COORD_FACTOR,
              $feature->getLocation()->getLongitude() / COORD_FACTOR);

有更快的方法吗?我在decode()课程上看到\Google\Protobuf\Internal\Message方法但是没有幸运能让它发挥作用。我也不知道这是否是它的预期目的。

1 个答案:

答案 0 :(得分:0)

我知道现在有点晚了,但是对于今天正在寻找答案的任何人,
下面是我将gRPC对象响应直接序列化为json对象的方法:

 $feature->serializeToJsonString();