在 php 中,可使用 json_encode() 函數(shù)將數(shù)組轉(zhuǎn)換為 json 格式,該函數(shù)接受一個數(shù)組并返回一個 json 字符串。它支持多個選項,包括 json_force_object(強制數(shù)組編碼為對象)、json_numeric_check(保持數(shù)值鍵值對為數(shù)值)、json_unescaped_slashes(禁用正斜杠轉(zhuǎn)義)和 json_unescaped_unicode(禁用 unicode 字符轉(zhuǎn)義)。可通過 ajax 將 json 數(shù)據(jù)發(fā)送到服務(wù)器,然后使用 json_decode() 函數(shù)將其解析回 php 數(shù)組。
優(yōu)雅地將 PHP 數(shù)組轉(zhuǎn)換為 JSON
在 PHP 中,將數(shù)組轉(zhuǎn)換為 JSON 格式非常容易,只需要使用 json_encode() 函數(shù)。該函數(shù)接受一個數(shù)組作為輸入,并返回一個 JSON 編碼的字符串。例如:
$array = [
'name' => 'John Doe',
'age' => 30
];
$json = json_encode($array);
echo $json; // 輸出: {"name":"John Doe","age":30}
登錄后復(fù)制
深入了解
json_encode() 函數(shù)還支持一些有用的選項,使你能夠控制輸出的 JSON 格式。其中一些選項包括:
JSON_FORCE_OBJECT: 強制將數(shù)組編碼為對象,即使該數(shù)組是簡單的鍵值對列表。JSON_NUMERIC_CHECK: 確保數(shù)值鍵值對在編碼后仍然保持為數(shù)值,而不是字符串。JSON_UNESCAPED_SLASHES: 禁用反斜杠轉(zhuǎn)發(fā),這意味著在輸出 JSON 中不會轉(zhuǎn)義正斜杠。JSON_UNESCAPED_UNICODE: 禁用 Unicode 字符的轉(zhuǎn)義,這意味著它們將在輸出 JSON 中顯示為純文本。
實戰(zhàn)案例
假設(shè)我們有一個數(shù)組,包含有關(guān)存儲在數(shù)據(jù)庫中的用戶的信息。我們希望將此數(shù)組轉(zhuǎn)換為 JSON 格式,以便通過 AJAX 請求發(fā)送到服務(wù)器。
$user = [
'id' => 1,
'name' => 'John Doe',
'email' => '[email protected]'
];
$json = json_encode($user);
登錄后復(fù)制
我們可以使用 AJAX 發(fā)送 $json 變量作為數(shù)據(jù),如下所示:
$.ajax({
url: 'save_user.php',
type: 'POST',
data: { user: json },
success: function(response) {
// 操作服務(wù)器響應(yīng)
}
});
登錄后復(fù)制
在服務(wù)器端,我們可以使用 json_decode() 函數(shù)將 JSON 字符串解析回 PHP 數(shù)組:
<?php $json = $_POST['user']; $user = json_decode($json, true); // 第二個參數(shù)為 true 將結(jié)果作為關(guān)聯(lián)數(shù)組而不是對象返回 // 對 $user 數(shù)組進行操作... ?>
登錄后復(fù)制






