WP_REST_Request::parse_json_params(): true|WP_Error

In this article

Parses the JSON parameters.

Description

Avoids parsing the JSON data until we need to access it.

Return

true|WP_Error True if the JSON data was passed or no JSON data was provided, WP_Error if invalid JSON was passed.

Source

protected function parse_json_params() {	if ( $this->parsed_json ) {	return true;	}	$this->parsed_json = true;	// Check that we actually got JSON.	if ( ! $this->is_json_content_type() ) {	return true;	}	$body = $this->get_body();	if ( empty( $body ) ) {	return true;	}	$params = json_decode( $body, true );	/* * Check for a parsing error. */	if ( null === $params && JSON_ERROR_NONE !== json_last_error() ) {	// Ensure subsequent calls receive error instance.	$this->parsed_json = false;	$error_data = array(	'status' => WP_Http::BAD_REQUEST,	'json_error_code' => json_last_error(),	'json_error_message' => json_last_error_msg(),	);	return new WP_Error( 'rest_invalid_json', __( 'Invalid JSON body passed.' ), $error_data );	}	$this->params['JSON'] = $params;	return true; } 

Changelog

VersionDescription
4.7.0Returns error instance if value cannot be decoded.
4.4.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.