NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class Marshaler

Marshals JSON documents or array representations of JSON documents into the parameter structure required by DynamoDB. Also allows for unmarshaling. Does not support binary (B) or set (*S) types, since they are not supported explicitly in JSON.

Namespace: Aws\DynamoDb
Located at Aws/DynamoDb/Marshaler.php

## Methods summary

- `public` `marshalJson ( string $json )`

  Marshal a JSON document from a string to an array that is formatted in the proper parameter structure required by DynamoDB operations.

- `public` `marshalItem ( array|\stdClass $item )`

  Marshal a native PHP array of data to a new array that is formatted in the proper parameter structure required by DynamoDB operations.

- `public` `marshalValue ( mixed $value )`

  Marshal a native PHP value into an array that is formatted in the proper parameter structure required by DynamoDB operations.

- `public` `unmarshalJson ( array $data, int $jsonEncodeFlags = 0 )`

  Unmarshal a document (item) from a DynamoDB operation result into a JSON document string.

- `public` `unmarshalItem ( array $data )`

  Unmarshal an item from a DynamoDB operation result into a native PHP array. If you set $mapAsObject to true, then a stdClass value will be returned instead.

- `public` `unmarshalValue ( array $value, bool $mapAsObject = false )`

  Unmarshal a value from a DynamoDB operation result into a native PHP value. Will return a scalar, array, or (if you set $mapAsObject to true) stdClass value.

## Methods detail

# `public array`
`marshalJson( string $json )`

Marshal a JSON document from a string to an array that is formatted in the proper parameter structure required by DynamoDB operations.

#### Parameters

$json
  `string`
  $json A valid JSON document.

#### Returns

`array`

#### Throws

``InvalidArgumentException``
if the JSON is invalid.
# `public array`
`marshalItem( array|`stdClass` $item )`

Marshal a native PHP array of data to a new array that is formatted in the proper parameter structure required by DynamoDB operations.

#### Parameters

$item
  `array|`stdClass``
  $item An associative array of data.

#### Returns

`array`
# `public array`
`marshalValue( mixed $value )`

Marshal a native PHP value into an array that is formatted in the proper parameter structure required by DynamoDB operations.

#### Parameters

$value
  `mixed`
  $value A scalar, array, or stdClass value.

#### Returns

`array`
Formatted like `array(TYPE => VALUE)`.

#### Throws

``UnexpectedValueException``
if the value cannot be marshaled.
# `public string`
`unmarshalJson( array $data, integer $jsonEncodeFlags = 0 )`

Unmarshal a document (item) from a DynamoDB operation result into a JSON document string.

#### Parameters

$data
  `array`
  $data Item/document from a DynamoDB result.
$jsonEncodeFlags
  `integer`
  $jsonEncodeFlags Flags to use with `json_encode()`.

#### Returns

`string`
# `public array|`stdClass``
`unmarshalItem( array $data )`

Unmarshal an item from a DynamoDB operation result into a native PHP array. If you set $mapAsObject to true, then a stdClass value will be returned instead.

#### Parameters

$data
  `array`
  $data Item from a DynamoDB result.

#### Returns

`array|`stdClass``
# `public mixed`
`unmarshalValue( array $value, boolean $mapAsObject = false )`

Unmarshal a value from a DynamoDB operation result into a native PHP value. Will return a scalar, array, or (if you set $mapAsObject to true) stdClass value.

#### Parameters

$value
  `array`
  $value Value from a DynamoDB result.
$mapAsObject
  `boolean`
  $mapAsObject Whether maps should be represented as stdClass.

#### Returns

`mixed`

#### Throws

``UnexpectedValueException``

### Magic methods summary