Example #1
0
 /**
  * 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;
 }