wp_json_file_decode()WP 5.9.0

Reads and decodes a JSON file.

No Hooks.

Return

Mixed. Returns the value encoded in JSON in appropriate PHP type. null is returned if the file is not found, or its content can't be decoded.

Usage

wp_json_file_decode( $filename, $options );
$filename(string) (required)
Path to the JSON file.
$options(array)

Options to be used with json_decode().

Default: array()

  • associative(true|false)
    Optional. When true, JSON objects will be returned as associative arrays. When false, JSON objects will be returned as objects.
    Default: false

Examples

0

#1 Get the contents of the json file as an associative array

$path_file = '/path/to/data.json';
$decoded_file = wp_json_file_decode( $path_file, [ 'associative' => true ] );

Changelog

Since 5.9.0 Introduced.

wp_json_file_decode() code WP 6.4.3

function wp_json_file_decode( $filename, $options = array() ) {
	$result   = null;
	$filename = wp_normalize_path( realpath( $filename ) );

	if ( ! $filename ) {
		trigger_error(
			sprintf(
				/* translators: %s: Path to the JSON file. */
				__( "File %s doesn't exist!" ),
				$filename
			)
		);
		return $result;
	}

	$options      = wp_parse_args( $options, array( 'associative' => false ) );
	$decoded_file = json_decode( file_get_contents( $filename ), $options['associative'] );

	if ( JSON_ERROR_NONE !== json_last_error() ) {
		trigger_error(
			sprintf(
				/* translators: 1: Path to the JSON file, 2: Error message. */
				__( 'Error when decoding a JSON file at path %1$s: %2$s' ),
				$filename,
				json_last_error_msg()
			)
		);
		return $result;
	}

	return $decoded_file;
}