summaryrefslogtreecommitdiffstats
path: root/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php')
-rw-r--r--vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php b/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php
new file mode 100644
index 0000000..3f66314
--- /dev/null
+++ b/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace PayPalHttp\Serializer;
+
+use PayPalHttp\HttpRequest;
+use PayPalHttp\Serializer;
+
+/**
+ * Class Json
+ * @package PayPalHttp\Serializer
+ *
+ * Serializer for JSON content types.
+ */
+class Json implements Serializer
+{
+
+ public function contentType()
+ {
+ return "/^application\\/json/";
+ }
+
+ public function encode(HttpRequest $request)
+ {
+ $body = $request->body;
+ if (is_string($body)) {
+ return $body;
+ }
+ if (is_array($body)) {
+ return json_encode($body);
+ }
+ throw new \Exception("Cannot serialize data. Unknown type");
+ }
+
+ public function decode($data)
+ {
+ return json_decode($data);
+ }
+}