X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/3f5685912e89eb3b0534acd85aa0946b1ca2bbe3..699231ae09f7057a4d0000cdf32e50a3df6a04ca:/wp-includes/compat.php diff --git a/wp-includes/compat.php b/wp-includes/compat.php index ce7e954c..4edf33b0 100644 --- a/wp-includes/compat.php +++ b/wp-includes/compat.php @@ -129,24 +129,32 @@ if ( !function_exists('json_encode') ) { global $wp_json; if ( !is_a($wp_json, 'Services_JSON') ) { - require_once( 'class-json.php' ); + require_once( ABSPATH . WPINC . '/class-json.php' ); $wp_json = new Services_JSON(); } - return $wp_json->encode( $string ); + return $wp_json->encodeUnsafe( $string ); } } if ( !function_exists('json_decode') ) { - function json_decode( $string ) { + function json_decode( $string, $assoc_array = false ) { global $wp_json; if ( !is_a($wp_json, 'Services_JSON') ) { - require_once( 'class-json.php' ); + require_once( ABSPATH . WPINC . '/class-json.php' ); $wp_json = new Services_JSON(); } - return $wp_json->decode( $string ); + $res = $wp_json->decode( $string ); + if ( $assoc_array ) + $res = _json_decode_object_helper( $res ); + return $res; + } + function _json_decode_object_helper($data) { + if ( is_object($data) ) + $data = get_object_vars($data); + return is_array($data) ? array_map(__FUNCTION__, $data) : $data; } }