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 ( $rawBody, $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.