關於PHP產生JSON資料的幾個問題。
foreach($re as $key=>$value){ $dd['code'][0]->$key=$value; }$ff = json_encode($dd);print_r($ff);// 輸出{"code":[{"0":{"key":"value"},"1":{"key":"value"}}]}
請問要怎麼在code前現加一點內容呢?比如:"url":"www.com"
,使產生的JSON就成這樣。
{"url":"www.com", "code":{"0":{"key":"value"},"1":{"key":"value"}}}}
還就是輸出的中文全變成了這樣\u8f8a\u67e5\u538d
,要怎麼才能輸出成中文呢?
Google了半天都沒找到辦法,找到的基本全這樣的。
$aa = urlencode($dd);echo urldecode(json_encode($aa));
可是這樣不僅不能輸出中文,連輸出都沒有了。。。
var_dump($aa)輸出的是NULL
,這可怎麼辦是好啊。。
=============追加=================
那個出現個問題。
{ "url":"www.com", "0": { "code": { "0":{"key":"value"}, "1":{"key":"value"} } }}
產生的JSON會變成這樣子,請問要怎麼把這此數字去掉呢?
=================二追===================
$aa = array("url"=>"www.com");json_encode(array($aa,$dd['code']), JSON_UNESCAPED_UNICODE);
這樣能可以實現想要的,可是有個問題。
從Mysql匯出來的資料時怎麼會有一個序號呢?
回複內容:
關於PHP產生JSON資料的幾個問題。
foreach($re as $key=>$value){ $dd['code'][0]->$key=$value; }$ff = json_encode($dd);print_r($ff);// 輸出{"code":[{"0":{"key":"value"},"1":{"key":"value"}}]}
請問要怎麼在code前現加一點內容呢?比如:"url":"www.com"
,使產生的JSON就成這樣。
{"url":"www.com", "code":{"0":{"key":"value"},"1":{"key":"value"}}}}
還就是輸出的中文全變成了這樣\u8f8a\u67e5\u538d
,要怎麼才能輸出成中文呢?
Google了半天都沒找到辦法,找到的基本全這樣的。
$aa = urlencode($dd);echo urldecode(json_encode($aa));
可是這樣不僅不能輸出中文,連輸出都沒有了。。。
var_dump($aa)輸出的是NULL
,這可怎麼辦是好啊。。
=============追加=================
那個出現個問題。
{ "url":"www.com", "0": { "code": { "0":{"key":"value"}, "1":{"key":"value"} } }}
產生的JSON會變成這樣子,請問要怎麼把這此數字去掉呢?
=================二追===================
$aa = array("url"=>"www.com");json_encode(array($aa,$dd['code']), JSON_UNESCAPED_UNICODE);
這樣能可以實現想要的,可是有個問題。
從Mysql匯出來的資料時怎麼會有一個序號呢?
你的問題有兩個:
1,如何追加內容?
json 和 array 是對應的,就像你給資料追加內容一樣:
$url = 'www.com';$code = array( array('key', 'value'); array('key', 'value'); array('key', 'value'););echo json_encode(array('url'=>$url, 'code'=>$code));
2,如何不亂碼?
php5.4 之後 json 新增了一個選項 JSONUNESCAPEDUNICODE:
echo json_encode(array('url'=>$url, 'code'=>$code), JSON_UNESCAPED_UNICODE);
讓 json 更懂中文
要在code
前加上內容,可以在要轉換為json
的數組前加上值就可以了吧。-_-
$dd['url'] = 'www.xx.com';
PHP版本始於5.4後可用JSON_UNESCAPED_UNICODE
參數常量來將字元不轉換為unicode
碼,具體參考手冊。
$ff = json_encode($dd, JSON_UNESCAPED_UNICODE);
如果PHP版本小於5.4,可參考如下方法:
function json_encode_utf8($value) { $jsons = json_encode($value); return preg_replace( "#\\\u([0-9a-f]{4}+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $jsons );}
\u8f8a\u67e5\u538d
本身就是中文啊, 這個是交給前端處理的。
問題1:
$dd['url'] = 'www.com';$dd['code'] = array();
問題2:
見1樓,那個是js中推薦的漢字使用方式,與檔案編碼無關。js中直接使用