首頁  >  文章  >  後端開發  >  php對json檔案的增刪改查

php對json檔案的增刪改查

WBOY
WBOY原創
2023-05-24 15:10:07906瀏覽

隨著網路的發展,資料的互動越來越頻繁,其中JSON(JavaScript Object Notation)成為大家喜愛的資料傳輸格式之一。因此,處理JSON資料變得越來越重要。本文將介紹使用PHP處理JSON檔的增、刪、改、查操作。

  1. JSON的語法基礎

在正式解說PHP對JSON的運算之前,先先了解JSON的文法基礎。 JSON採用鍵值對的方式記錄數據,其中鍵用雙引號括起來,緊接著是一個冒號,再接著是一個值(可以是任意類型的值,如:字串、數字、布林值、陣列、對象、null)。多個鍵值對之間用逗號隔開,並且整個JSON以大括號{}包圍。

舉例:

{

"name": "张三",
"age": 25,
"city": "上海",
"friends": [
    "李四",
    "王五",
    "赵六"
]

}

  1. #PHP中的JSON函數

PHP內建了一些處理JSON資料的函數,它們包括:

json_encode():用於將PHP數組轉換為JSON格式字串。

json_decode():用於將JSON格式字串轉換為PHP陣列/物件。

json_last_error():用於取得最後一次JSON編碼/解碼產生的錯誤訊息。

下面就透過實例來介紹這些函數的具體使用。

  1. JSON檔案的讀取與解析

我們假設有一個JSON檔案data.json,內容如下:

{

"name": "张三",
"age": 25,
"city": "上海",
"friends": [
    "李四",
    "王五",
    "赵六"
]

}

我們需要讀取這個JSON檔案並解析成PHP數組,使用json_decode()函數即可,程式碼如下:

31dd739c70a515612cf9a522d7e60b11

輸出結果如下:

Array
(

[name] => 张三
[age] => 25
[city] => 上海
[friends] => Array
    (
        [0] => 李四
        [1] => 王五
        [2] => 赵六
    )

)

其中,json_decode()函數的第二個參數為true,表示解碼為PHP數組。如果不傳遞這個參數或傳遞false,則解碼為PHP物件。

  1. JSON檔案的寫入與產生

在PHP中,將PHP陣列轉換為JSON格式的字串可以使用json_encode()函數。例如,將上述範例中的陣列$data轉換為JSON格式的字串,程式碼如下:

##0e34d91e150443ee9f8285305b4ed658

輸出結果如下:

{"name":"張三","age":25,"city":"上海","friends":["李四","王五","趙六" ]}

可以看到,json_encode()函數的第二個參數JSON_UNESCAPED_UNICODE表示不將中文轉義成Unicode編碼。

接下來,我們需要將上述的JSON格式字串寫入檔案中,可以使用file_put_contents()函數,程式碼如下:

8355420fefb827d1274de6812d1b7d4e

其中,第一個參數為已儲存的檔名,第二個參數為要寫入的JSON格式字串。

    JSON檔案的修改
修改JSON文件,實際上就是修改其對應的PHP數組,然後再將數組轉換為JSON格式字串,覆寫原來的文件即可。假設我們要將張三的年齡修改為30歲,程式碼如下:

1c7fd40ff49dd96060601f23a576bff1

    JSON檔的刪除
刪除JSON文件,可以使用unlink()函數,如下:

23ea8048c2939a14be31c8cbd0d6cf71

    JSON資料的查詢
處理JSON中的資料時,我們常常需要查詢某個鍵的值。假如需要查詢張三的城市,程式碼如下:

c310bbc7b0a1cfbbc62d46e3e9116299

透過這個例子可以看出,在PHP中處理JSON數據和處理普通的陣列或物件並沒有差別。

總結

本文介紹了PHP對JSON檔案的增刪改查操作,包括讀取解析、寫入產生、修改、刪除和查詢。當然,這些操作都是基於JSON檔案或字串,而不是資料庫。因此,當我們需要處理大量資料時,建議使用資料庫,而不是JSON檔案。

以上是php對json檔案的增刪改查的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn