Class yii\web\JsonParser
| Inheritance | yii\web\JsonParser |
|---|---|
| Implements | yii\web\RequestParserInterface |
| Available since version | 2.0 |
| Source Code | https://github.com/yiisoft/yii2/blob/master/framework/web/JsonParser.php |
Parses a raw HTTP request using yii\helpers\Json::decode().
To enable parsing for JSON requests you can configure yii\web\Request::$parsers using this class:
'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ] ] Public Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $asArray | boolean | Whether to return objects in terms of associative arrays. | yii\web\JsonParser |
| $throwException | boolean | Whether to throw a yii\web\BadRequestHttpException if the body is invalid JSON | yii\web\JsonParser |
Public Methods
| Method | Description | Defined By |
|---|---|---|
| parse() | Parses a HTTP request body. | yii\web\JsonParser |
Property Details
Whether to return objects in terms of associative arrays.
Whether to throw a yii\web\BadRequestHttpException if the body is invalid JSON
Method Details
Parses a HTTP request body.
| public array|stdClass parse ( string $rawBody, string $contentType ) | ||
| $rawBody | string | The raw HTTP request body. |
| $contentType | string | The content type specified for the request body. |
| return | array|stdClass | Parameters parsed from the request body |
|---|---|---|
| throws | yii\web\BadRequestHttpException | if the body contains invalid json and $throwException is |
public function parse($rawBody, $contentType) { // converts JSONP to JSON if (strpos($contentType, 'application/javascript') !== false) { $rawBody = preg_filter('/(^[^{]+|[^}]+$)/', '', $rawBody); } try { $parameters = Json::decode($rawBody, $this->asArray); return $parameters === null ? [] : $parameters; } catch (InvalidArgumentException $e) { if ($this->throwException) { throw new BadRequestHttpException('Invalid JSON data in request body: ' . $e->getMessage()); } return []; } }
Signup or Login in order to comment.