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;
}
}