Restore compat for json_decode and json_encode. fixes #18015 for trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@18404 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -60,3 +60,37 @@ function _hash_hmac($algo, $data, $key, $raw_output = false) {
|
||||
return pack( $pack, $hmac );
|
||||
return $hmac;
|
||||
}
|
||||
|
||||
if ( !function_exists('json_encode') ) {
|
||||
function json_encode( $string ) {
|
||||
global $wp_json;
|
||||
|
||||
if ( !is_a($wp_json, 'Services_JSON') ) {
|
||||
require_once( ABSPATH . WPINC . '/class-json.php' );
|
||||
$wp_json = new Services_JSON();
|
||||
}
|
||||
|
||||
return $wp_json->encodeUnsafe( $string );
|
||||
}
|
||||
}
|
||||
|
||||
if ( !function_exists('json_decode') ) {
|
||||
function json_decode( $string, $assoc_array = false ) {
|
||||
global $wp_json;
|
||||
|
||||
if ( !is_a($wp_json, 'Services_JSON') ) {
|
||||
require_once( ABSPATH . WPINC . '/class-json.php' );
|
||||
$wp_json = new Services_JSON();
|
||||
}
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user