$value) { $item = (!$isArray ? "\"$key\":" : ''); if (is_array($value)) $item .= json::array2json($value); elseif (is_null($value)) $item .= 'null'; elseif (is_bool($value)) $item .= $value ? 'true' : 'false'; elseif (is_string($value)) $item .= '"' . preg_replace( '%([\\x00-\\x1f\\x22\\x5c])%e', 'sprintf("\\\\u%04X", ord("$1"))', $value ) . '"'; elseif (is_numeric($value)) $item .= $value; else throw new Exception('Wrong argument.'); $items[] = $item; } return ($isArray ? '[' : '{') . implode(',', $items) . ($isArray ? ']' : '}'); } function json2array_test($json) { $comment = false; $out = '';$x=''; for ($i=0; $i