php物件數組怎麼轉換為json字串數組

PHPz
發布: 2023-04-19 15:05:56
原創
428 人瀏覽過

在現代Web開發中,基於JavaScript的前端程式使用JSON(JavaScript Object Notation)格式資料已成為常規選擇。而 PHP 則是一種常見的伺服器端程式語言。常常我們需要在伺服器端將PHP物件或陣列轉換為JSON格式字串,以方便前端呼叫。在本文中,將介紹如何在 PHP 中將物件陣列轉換為 JSON 字串陣列。

  1. 使用json_encode() 函數

PHP中內建了json_encode()函數,該函數可以將PHP 的陣列和物件轉換為JSON 格式字串,如下所顯示:

<?php
$array = array(&#39;name&#39; => '张三', 'age' => 18, 'gender' => 'male');
echo json_encode($array);
?>
登入後複製

運行結果:

{"name":"张三","age":18,"gender":"male"}
登入後複製

在這個範例中我們可以看到,當將PHP陣列傳入json_encode()函數時能夠傳回一個已編碼的JSON格式字串。這裡要注意:json_encode()函數只支援UTF-8編碼格式,如果你的字串所使用的編碼格式不是UTF-8則會發生錯誤。因此,在使用json_encode()函數之前,請確保需要轉換的陣列或物件已轉換為 UTF-8 格式。

  1. 物件數組的JSON格式化

如果需要將物件數組轉換為JSON 字串數組,則需要將物件轉換為數組,並使用json_encode()函數進行處理。舉例來說,我們需要將表示學生資訊的物件陣列轉換為JSON 格式字串陣列:

<?php
class Student{
    public $name;
    public $age;
    public $gender;
}
$student1 = new Student();
$student1->name = '张三';
$student1->age = 18;
$student1->gender = 'male';

$student2 = new Student();
$student2->name = '李四';
$student2->age = 19;
$student2->gender = 'female';

$students = array();
array_push($students,$student1,$student2);

$students_arr = array();
foreach($students as $student){
    $obj = get_object_vars($student);
    array_push($students_arr,$obj);
}

echo json_encode($students_arr);
?>
登入後複製

運行結果:

[{"name":"张三","age":18,"gender":"male"},{"name":"李四","age":19,"gender":"female"}]
登入後複製

在上面的範例中,我們建立了一個可以表示學生資訊的Student 類,並用陣列儲存多個Student 物件。在將 Student 物件轉換為陣列時,使用了 get_object_vars() 函數。這個函數可以將物件轉換為一個關聯數組,使我們可以像處理數組一樣處理物件。最後將陣列傳給json_encode()函數,將結果輸出即可。

同時,為了更好的輔助理解,我們也可以將上述範例轉換為更直覺的形式,如下圖所示:

  1. JSON_PRETTY_PRINT選項

透過上面的兩個例子,您已經了解到如何將PHP物件或陣列轉換為JSON格式字串陣列。但是,乍看之下這些JSON格式字串陣列看起來有些難以閱讀。為了美化JSON 資料格式,你可以使用json_encode()函數的第二個參數:JSON_PRETTY_PRINT選擇,如下所示:

<?php
$array = array(&#39;name&#39; => '张三', 'age' => 18, 'gender' => 'male');
echo json_encode($array,JSON_PRETTY_PRINT);
?>
登入後複製

運行結果:

{
    "name": "张三",
    "age": 18,
    "gender": "male"
}
登入後複製

這就是使用JSON_PRETTY_PRINT選項後的輸出結果,更清晰易讀。

在這篇文章中,我們介紹如何在 PHP 中將物件陣列轉換為 JSON 字串陣列。這是我們進行前後端互動的重要一步,再結合前端的 JSON 解析工具,能夠輕易地將資料轉換為各個網站所需的格式。

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

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