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

# Class JsonVisitor

Location visitor used to marshal JSON response data into a formatted array.

Allows top level JSON parameters to be inserted into the result of a command. The top level attributes are grabbed from the response's JSON data using the name value by default. Filters can be applied to parameters as they are traversed. This allows data to be normalized before returning it to users (for example converting timestamps to DateTime objects).

  Guzzle\Service\Command\LocationVisitor\Response\AbstractResponseVisitor implements Guzzle\Service\Command\LocationVisitor\Response\ResponseVisitorInterface
  Guzzle\Service\Command\LocationVisitor\Response\JsonVisitor

Namespace: Guzzle\Service\Command\LocationVisitor\Response
Located at Guzzle/Service/Command/LocationVisitor/Response/JsonVisitor.php

## Methods summary

- `public` `before ( Guzzle\Service\Command\CommandInterface $command, array & $result )`

  Called before visiting all parameters. This can be used for seeding the result of a command with default data (e.g. populating with JSON data in the response then adding to the parsed data).

- `public` `visit ( Guzzle\Service\Command\CommandInterface $command, Guzzle\Http\Message\Response $response, Guzzle\Service\Description\Parameter $param, mixed & $value, mixed $context = null )`

  Called once for each parameter being visited that matches the location type

- `protected` `recursiveProcess ( Guzzle\Service\Description\Parameter $param, mixed & $value )`

  Recursively process a parameter while applying filters

## Methods detail

# `public`
`before( `Guzzle\Service\Command\CommandInterface` $command, array & $result )`

Called before visiting all parameters. This can be used for seeding the result of a command with default data (e.g. populating with JSON data in the response then adding to the parsed data).

#### Parameters

$command
  ``Guzzle\Service\Command\CommandInterface``
  $command Command being visited
$result
  `array`
  $result Result value to update if needed (e.g. parsing XML or JSON)

#### Overrides

`Guzzle\Service\Command\LocationVisitor\Response\AbstractResponseVisitor::before`
# `public`
`visit( `Guzzle\Service\Command\CommandInterface` $command, `Guzzle\Http\Message\Response` $response, `Guzzle\Service\Description\Parameter` $param, mixed & $value, mixed $context = null )`

Called once for each parameter being visited that matches the location type

#### Parameters

$command
  ``Guzzle\Service\Command\CommandInterface``
  $command Command being visited
$response
  ``Guzzle\Http\Message\Response``
  $response Response being visited
$param
  ``Guzzle\Service\Description\Parameter``
  $param Parameter being visited
$value
  `mixed`
  $value Result associative array value being updated by reference
$context
  `mixed`
  $context Parsing context

#### Overrides

`Guzzle\Service\Command\LocationVisitor\Response\AbstractResponseVisitor::visit`
# `protected`
`recursiveProcess( `Guzzle\Service\Description\Parameter` $param, mixed & $value )`

Recursively process a parameter while applying filters

#### Parameters

$param
  ``Guzzle\Service\Description\Parameter``
  $param API parameter being validated
$value
  `mixed`
  $value Value to validate and process. The value may change during this process.

### Methods inherited from Guzzle\Service\Command\LocationVisitor\Response\AbstractResponseVisitor

`after()`

### Magic methods summary