OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
Xpress
/
vendor
/
aws
/
aws-sdk-php
/
src
/
Api
/
Serializer
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/19/2025 10:07:17 AM
rwxr-xr-x
📄
Ec2ParamBuilder.php
857 bytes
05/19/2025 10:07:17 AM
rw-r--r--
📄
JsonBody.php
3.12 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
JsonRpcSerializer.php
2.41 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
QueryParamBuilder.php
4.08 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
QuerySerializer.php
2.31 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
RestJsonSerializer.php
1.15 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
RestSerializer.php
10.27 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
RestXmlSerializer.php
1.3 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
XmlBody.php
5.99 KB
05/19/2025 10:07:17 AM
rw-r--r--
Editing: JsonBody.php
Close
<?php namespace Aws\Api\Serializer; use Aws\Api\Service; use Aws\Api\Shape; use Aws\Api\TimestampShape; use Aws\Exception\InvalidJsonException; /** * Formats the JSON body of a JSON-REST or JSON-RPC operation. * @internal */ class JsonBody { private $api; public function __construct(Service $api) { $this->api = $api; } /** * Gets the JSON Content-Type header for a service API * * @param Service $service * * @return string */ public static function getContentType(Service $service) { if ($service->getMetadata('protocol') === 'rest-json') { return 'application/json'; } $jsonVersion = $service->getMetadata('jsonVersion'); if (empty($jsonVersion)) { throw new \InvalidArgumentException('invalid json'); } else { return 'application/x-amz-json-' . @number_format($service->getMetadata('jsonVersion'), 1); } } /** * Builds the JSON body based on an array of arguments. * * @param Shape $shape Operation being constructed * @param array $args Associative array of arguments * * @return string */ public function build(Shape $shape, array $args) { $result = json_encode($this->format($shape, $args)); return $result == '[]' ? '{}' : $result; } private function format(Shape $shape, $value) { switch ($shape['type']) { case 'structure': $data = []; if (isset($shape['document']) && $shape['document']) { return $value; } foreach ($value as $k => $v) { if ($v !== null && $shape->hasMember($k)) { $valueShape = $shape->getMember($k); $data[$valueShape['locationName'] ?: $k] = $this->format($valueShape, $v); } } if (empty($data)) { return new \stdClass; } return $data; case 'list': $items = $shape->getMember(); foreach ($value as $k => $v) { $value[$k] = $this->format($items, $v); } return $value; case 'map': if (empty($value)) { return new \stdClass; } $values = $shape->getValue(); foreach ($value as $k => $v) { $value[$k] = $this->format($values, $v); } return $value; case 'blob': return base64_encode($value); case 'timestamp': $timestampFormat = !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : 'unixTimestamp'; return TimestampShape::format($value, $timestampFormat); default: return $value; } } }