diff options
author | Hakan Sandell <sandell.hakan@gmail.com> | 2010-11-20 14:30:57 +0100 |
---|---|---|
committer | Hakan Sandell <sandell.hakan@gmail.com> | 2010-11-20 14:30:57 +0100 |
commit | 8f0a521756228d15469d2a712fa1010b64a1d53a (patch) | |
tree | 38ce28a99433403fa18d2bce871abc7290c8be54 /inc/JSON.php | |
parent | ba9418bca378a6759305e3b388926df4f5a0af9c (diff) | |
parent | 85dcda20ffd82becbe69a7ca5d99e4b6fd99c9ea (diff) | |
download | rpg-8f0a521756228d15469d2a712fa1010b64a1d53a.tar.gz rpg-8f0a521756228d15469d2a712fa1010b64a1d53a.tar.bz2 |
Merge branch 'master' of git://github.com/splitbrain/dokuwiki
Diffstat (limited to 'inc/JSON.php')
-rw-r--r-- | inc/JSON.php | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/inc/JSON.php b/inc/JSON.php index 332827f4c..2dea44003 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -112,6 +112,16 @@ define('JSON_STRICT_TYPE', 11); * @deprecated */ class JSON { + + /** + * Disables the use of PHP5's native json_decode() + * + * You shouldn't change this usually because the native function is much + * faster. However, this non-native will also parse slightly broken JSON + * which might be handy when talking to a non-conform endpoint + */ + public $skipnative = false; + /** * constructs a new JSON instance * @@ -130,6 +140,7 @@ class JSON { /** * encodes an arbitrary variable into JSON format + * If available the native PHP JSON implementation is used. * * @param mixed $var any number, boolean, string, array, or object to be encoded. * see argument 1 to JSON() above for array-parsing behavior. @@ -140,6 +151,7 @@ class JSON { * @access public */ function encode($var) { + if (function_exists('json_encode')) return json_encode($var); switch (gettype($var)) { case 'boolean': return $var ? 'true' : 'false'; @@ -352,6 +364,7 @@ class JSON { /** * decodes a JSON string into appropriate variable + * If available the native PHP JSON implementation is used. * * @param string $str JSON-formatted string * @@ -363,6 +376,10 @@ class JSON { * @access public */ function decode($str) { + if (!$this->skipnative && function_exists('json_decode')){ + return json_decode($str,($this->use == JSON_LOOSE_TYPE)); + } + $str = $this->reduce_string($str); switch (strtolower($str)) { |