PHP產生JSON相關的問題

來源:互聯網
上載者:User
關於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中直接使用

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.