JSON格式編碼操作類

2021-06-14 18:17:03 字數 3185 閱讀 7922

【原創】json格式編碼操作類

可以使大家加深對字串編碼和json編碼原理的了解

define('is_null',   'null');

define('is_bool', 'boolean');

define('is_int', 'integer');

define('is_double', 'double');

define('is_string', 'string');

define('is_array', 'array');

define('is_object', 'object');

/**

* @author jiang kejun * @name json

* @since 2013.6.3

* @uses 對json的操作

* @version $id: json.php 376 2013.6.3 create jkj $

* @version $id: json.php 385 2013.7.16 edit jkj $

*/class json

/*** 對utf8物件進行json格式編碼

* * @access public

* @param mixed $value

* @return string buf

*/public function encode( $value )

return $this->buf; }

/*** 處理陣列

* * @access private

* @param string &$buf

* @param array $data

*/private function _handle_array( &$buf, array $data ) else

foreach ( $data as $key=>$val )

$this->encode( $val );

if( $pos < $count-1 ) $this->__s( $buf, ',' );

$pos++;

} if( !$iskey ) else ' );

} }/**

* 處理字串

* * @access private

* @param string &$buf

* @param string $s

*/private function _handle_string( &$buf, $s )

$len = $this->utf8_to_utf16( $s );

if( $len <= 0 ) else

return ;

} $this->__s( $buf, $this->quotes );

if( is_numeric( $s ) )

else

$len = 0;

} $pos = 0;

while ( $pos < $len ) else

break;}}

$this->__s( $buf, $this->quotes );

if ( $this->utf16 ) }

function __s( &$buf, $val )

$buf .= $val;

} /**

* 將utf8的unicode 轉化成16進製制的陣列

* * @param string $s

* @return int 陣列的count

*/function utf8_to_utf16( $s )

$pos = 0;

$len = strlen( $s );

for( ;$pos < $len; ) );

if($ascii > 128)

else ;

$pos += 1;

}} return count( $this->utf16 ); }

/*** 將16進製制的陣列轉化成帶utf8字元

* * @param string $out_charset 返回的字符集編碼,用於本地化和測試

* @return null|string str 帶utf8字元

*/function utf16_to_utf8( $out_charset='utf-8' )

$arr = array();

foreach ( $this->utf16 as $utf16 )

else $arr = $tmp;}}

else

} return implode( "", $arr ); }

/*** utf8轉unicode 10進製

* * @param string $c

* @return int $un unicode

*/function _utf8_to_unicode( $c )

return $un; }

/*** 10進製unicode轉utf8

* * @param int $un

* @return string utf8編碼字元

*/function _unicode_to_utf8( $un )

elseif( $un < 0x010000 )

elseif( $un < 0x110000 )

return chr( $c1 ).chr( $c2 ).

chr( $c3 ).chr( $c4 ); }

/*** 是否是utf8編碼字串

* * @param string $str

* @return bool

*/function is_utf8( $str ) }}

return true; }

/*** 對 json 格式的字串進行解碼

* * @access public

* @param string $json

* @param bool $assoc true:返回array; false:返回stdclass

* @return mixed

*/public function decode( $json, $assoc=false )

}

js變數,json格式編碼困惑

json格式編碼困惑 1map 1與 2使用上沒有什麼不一樣。對js來說key都字串。但如果你不想給key有規範的命名,那最好使用引號。例 test test.1 error key test test.1 no access way test 1 right access way test tes...

轉換Json格式幫助類

using system using system.collections.generic using system.text using system.reflection using system.data using system.collections namespace aimscommo...

JSON編碼格式提交表單資料

以json編碼格式提交表單資料是html5對web發展進化的又一大貢獻,以前我們的html表單資料是通過key value方式傳輸的伺服器端,這種形式的傳輸對資料組織缺乏管理,形式十分原始。而新出現的json格式提交表單資料方法,將表單裡的所有資料轉化的具有一定規範的json格式,然後傳輸的伺服器端...