/** * public method * * Joy_File_Reader_Json_Helper::encode(params:*):String * * @param * Array, Boolean, Float, Int, Object, String or NULL variable. * @return String JSON genric object rappresentation * or empty string if param is not compatible. * * @example * Joy_File_Reader_Json_Helper::encode(array(1,"two")); // '[1,"two"]' * * $obj = new MyClass(); * obj->param = "value"; * obj->param2 = "value2"; * Joy_File_Reader_Json_Helper::encode(obj); // '{"param":"value","param2":"value2"}' */ function encode($decode) { $result = ''; switch (gettype($decode)) { case 'array': if (!count($decode) || array_keys($decode) === range(0, count($decode) - 1)) { $keys = array(); foreach ($decode as $value) { if (($value = Joy_File_Reader_Json_Helper::encode($value)) !== '') { array_push($keys, $value); } } $result = '[' . implode(',', $keys) . ']'; } else { $result = Joy_File_Reader_Json_Helper::convert($decode); } break; case 'string': $replacement = Joy_File_Reader_Json_Helper::__getStaticReplacement(); $result = '"' . str_replace($replacement['find'], $replacement['replace'], $decode) . '"'; break; default: if (!is_callable($decode)) { $result = Joy_File_Reader_Json_Helper::convert($decode); } break; } return $result; }