首頁 > 後端開發 > PHP問題 > php中文數組怎麼轉json

php中文數組怎麼轉json

PHPz
發布: 2023-04-18 10:05:44
原創
626 人瀏覽過

近年來,隨著Web技術的不斷發展,前端與後端之間的資料互動變得越來越普遍。而在這個過程中,資料格式的轉換就顯得特別重要。本文將介紹如何在php中將中文陣列轉換為json格式。

一、什麼是中文數組

中文數組與普通數組類似,只不過數組元素的鍵名和值都是中文字串。例如:

$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男");
登入後複製

二、什麼是JSON

JSON(JavaScript Object Notation)是一種用於資料交換的語言,它以簡潔的形式表示數據,易於閱讀和編寫。 JSON可以表示數字、字串、布林值、陣列和物件等,廣泛應用於Web應用中。例如:

{
   "name": "John",
   "age": 30,
   "city": "New York"
}
登入後複製

三、中文陣列轉JSON

在php中,我們可以使用json_encode()函數將中文陣列轉換為JSON格式。例如:

$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男");
$json_str = json_encode($cn_arr,JSON_UNESCAPED_UNICODE);
echo $json_str;
登入後複製

代碼中的JSON_UNESCAPED_UNICODE參數是為了防止中文亂碼,它表示不對中文進行Unicode編碼。

如果我們要輸出整齊的JSON格式,可以使用json_encode()函數的第二個參數JSON_PRETTY_PRINT。例如:

$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男");
$json_str = json_encode($cn_arr,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
echo $json_str;
登入後複製

輸出結果如下:

{
    "姓名": "张三",
    "年龄": 20,
    "性别": "男"
}
登入後複製

要注意的是,json_encode()函數只能處理UTF-8編碼的字串。如果你的php檔案編碼不是UTF-8,就需要使用mb_convert_encoding()函數將陣列元素轉換為UTF-8編碼的字串,例如:

$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男");
$utf8_arr = array();
foreach($cn_arr as $key=>$value){
  $utf8_arr[mb_convert_encoding($key,"UTF-8","auto")]=mb_convert_encoding($value,"UTF-8","auto");
}
$json_str = json_encode($utf8_arr,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
echo $json_str;
登入後複製

四、JSON轉中文陣列

在php中,我們可以使用json_decode()函數將JSON格式的字串轉換為陣列。例如:

$json_str = '{"姓名":"张三","年龄":20,"性别":"男"}';
$cn_arr = json_decode($json_str,true);
print_r($cn_arr);
登入後複製

程式碼中的第二個參數true表示將JSON物件轉換為陣列。輸出結果如下:

Array
(
    [姓名] => 张三
    [年龄] => 20
    [性别] => 男
)
登入後複製

要注意的是,json_decode()函數只能處理UTF-8編碼的字串。如果你的JSON字串編碼不是UTF-8,就需要使用mb_convert_encoding()函數將字串轉換為UTF-8編碼,例如:

$json_str = '{"姓名":"张三","年龄":20,"性别":"男"}';
$utf8_str = mb_convert_encoding($json_str,"UTF-8","auto");
$cn_arr = json_decode($utf8_str,true);
print_r($cn_arr);
登入後複製

五、總結

#本文介紹了php中文陣列轉換為JSON格式的方法,以及如何將JSON字串轉換為中文陣列。在進行資料格式轉換時,尤其需要注意編碼的問題,以免出現亂碼。

以上是php中文數組怎麼轉json的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板