From cba04b19e88dba2c13241b733bf7f595f1463082 Mon Sep 17 00:00:00 2001 From: Paul Yang Date: Wed, 8 Feb 2017 10:27:54 -0800 Subject: Implement json encoding decoding for php. (#2682) --- conformance/conformance_php.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'conformance/conformance_php.php') diff --git a/conformance/conformance_php.php b/conformance/conformance_php.php index c2314001..69001971 100755 --- a/conformance/conformance_php.php +++ b/conformance/conformance_php.php @@ -45,9 +45,19 @@ function doTest($request) $test_message = new \Protobuf_test_messages\Proto3\TestAllTypes(); $response = new \Conformance\ConformanceResponse(); if ($request->getPayload() == "protobuf_payload") { - $test_message->encode($request->getProtobufPayload()); + try { + $test_message->decode($request->getProtobufPayload()); + } catch (Exception $e) { + $response->setParseError($e->getMessage()); + return $response; + } } elseif ($request->getPayload() == "json_payload") { - // TODO(teboring): Implmement json decoding. + try { + $test_message->jsonDecode($request->getJsonPayload()); + } catch (Exception $e) { + $response->setParseError($e->getMessage()); + return $response; + } } else { trigger_error("Request didn't have payload.", E_USER_ERROR); } @@ -57,7 +67,7 @@ function doTest($request) } elseif ($request->getRequestedOutputFormat() == WireFormat::PROTOBUF) { $response->setProtobufPayload($test_message->encode()); } elseif ($request->getRequestedOutputFormat() == WireFormat::JSON) { - // TODO(teboring): Implmement json encoding. + $response->setJsonPayload($test_message->jsonEncode()); } return $response; -- cgit v1.2.3