Các ứng dụng dựa trên dữ liệu liên quan đến việc chuyển đổi đối tượng JSON thành mảng trong PHP. Đó là lý do tại sao PHP có phần mở rộng JSON và hỗ trợ các chuyển đổi này nguyên bản. Trong một trong những bài viết của chúng tôi, “Cách chuyển đổi mảng thành JSON trong PHP”, chúng tôi đã tìm hiểu sâu về JSON. Dưới đây là phần đánh giá nhanh những gì chúng ta đã học được trong bài viết đó về JSON
- JSON là viết tắt của ký hiệu đối tượng Javascript
- JSON là một định dạng trao đổi dữ liệu nhẹ
- Đó là ngôn ngữ độc lập
- JSON là định dạng trao đổi dữ liệu tự mô tả và dễ hiểu
Trước khi chúng tôi đi sâu vào các kỹ thuật, cần đảm bảo rằng bạn biết tại sao chúng tôi chuyển đổi đối tượng JSON thành một mảng trong PHP ngay từ đầu?
Mục lục
Tại sao chúng ta chuyển đổi đối tượng JSON thành mảng trong PHP?
Câu hỏi này có thể khiến bạn tò mò nếu bạn chưa từng làm việc với API hoặc cơ sở dữ liệu. API và cơ sở dữ liệu ngày nay thường trả về dữ liệu ở dạng chuỗi JSON. Mục đích chính của việc gọi API trong ứng dụng PHP của bạn là yêu cầu dữ liệu. Ví dụ: phát triển trang web xếp hạng phim yêu cầu dữ liệu từ API hoặc cơ sở dữ liệu
Trong cùng một bối cảnh, bạn cần làm việc với dữ liệu sau khi tìm nạp nó. Bây giờ, hãy suy nghĩ một chút, cái nào sẽ thuận tiện hơn để phân tích cú pháp, thao tác và xử lý? . Tôi sẽ không đi sâu vào phần lý do, nếu không bài viết sẽ đi chệch chủ đề đã định. Nhưng đây là động lực chính xác đằng sau việc chuyển đổi một đối tượng JSON thành một mảng trong PHP
PHP và JSON
PHP cung cấp một số chức năng hữu ích như là một phần của phần mở rộng JSON của nó. Đây là các chức năng mặc định mà bạn có thể sử dụng ngay mà không cần nhập và cấu hình bổ sung nào. Hai chức năng quan trọng nhất để chuyển đổi JSON và mảng trong PHP là
- json_encode [mảng thành JSON trong PHP]
- json_decode [đối tượng JSON thành mảng trong PHP]
Chúng ta đã thấy json_encode khi chuyển đổi từ mảng sang JSON trong PHP. Trong bài viết này, chúng ta sẽ khám phá cách chuyển đổi đối tượng JSON thành mảng trong PHP. Hàm mà chúng ta sẽ xem xét và khám phá là json_decode. Vì vậy, hãy làm điều đó mà không cần phải quảng cáo thêm
Đối tượng JSON thành mảng PHP
Hàm json_decode giải mã một đối tượng JSON và chuyển đổi nó thành một mảng trong PHP
Sự miêu tả
json_decode lấy một chuỗi được mã hóa JSON và chuyển đổi nó thành một biến PHP
Chữ ký chức năng
json_decode[ string $json, ?bool $associative = null, int $depth = 512, int $flags = 0] : mixed
Tranh luận
- $json – Chuỗi JSON đang được giải mã
- $ kết hợp
- Nếu đúng, hàm trả về một mảng kết hợp.
- Nếu sai, hàm trả về một đối tượng
- Nếu null, kiểu trả về của hàm sau đó phụ thuộc vào cờ JSON_OBJECT_AS_ARRAY
- $depth – Xác định độ sâu tối đa để giải mã trong chuỗi JSON
- $flags – [Các] hằng số để thay đổi hành vi của hàm. [Xem chú thích]
Loại trả lại
- Trả về loại PHP thích hợp tùy thuộc vào đối số $associative
- Trả về null nếu không thể giải mã JSON hoặc dữ liệu JSON sâu hơn giới hạn lồng nhau được xác định bởi đối số độ sâu
Ghi chú
Đối số $flags xác định các hằng số nhất định cần thiết để thay đổi hành vi của bộ mã hóa. PHP định nghĩa một danh sách đầy đủ các hằng số này
Ví dụ – Đối tượng JSON thành mảng PHP sử dụng json_decode
Hãy xem một ví dụ về cách chuyển đổi đối tượng JSON thành mảng trong PHP. Ở đây chúng tôi có JSON cho API đặt hàng của khách hàng
$json =
'
{
"1":
{
"customer_name" : "Samuel",
"payment_method": "Cash",
"order_id" : ["AA-121","AA-122","AA-142"]
},
"2":
{
"customer_name" : "Martha",
"payment_method": "Card",
"order_id" : ["CC-11","CC-16","BB-172"]
},
"3":
{
"customer_name" : "Jackie",
"payment_method": "Cash",
"order_id": ["EE-21","EE-101"]
}
}
';
Chuỗi JSON này được lưu trữ trong biến $json trong PHP. Hãy chuyển cái này cho hàm json_decode
//Converts JSON to array in PHP
var_dump[json_decode[$json,true]];
Bạn có thể thấy rằng chúng ta đã chuyển đúng đối số $associative. Như đã thảo luận ở trên, điều này sẽ làm cho kiểu trả về trở thành một mảng kết hợp. Đây là đầu ra
array[3] {
[1]=>
array[3] {
["customer_name"]=>
string[6] "Samuel"
["payment_method"]=>
string[4] "Cash"
["order_id"]=>
array[3] {
[0]=>
string[6] "AA-121"
[1]=>
string[6] "AA-122"
[2]=>
string[6] "AA-142"
}
}
[2]=>
array[3] {
["customer_name"]=>
string[6] "Martha"
["payment_method"]=>
string[4] "Card"
["order_id"]=>
array[3] {
[0]=>
string[5] "CC-11"
[1]=>
string[5] "CC-16"
[2]=>
string[6] "BB-172"
}
}
[3]=>
array[3] {
["customer_name"]=>
string[6] "Jackie"
["payment_method"]=>
string[4] "Cash"
["order_id"]=>
array[2] {
[0]=>
string[5] "EE-21"
[1]=>
string[6] "EE-101"
}
}
}
Giải mã hoàn hảo chuỗi JSON thành một mảng. Chuyển đổi xen kẽ này là thứ bạn sẽ sử dụng khá thường xuyên khi tích hợp API với ứng dụng của mình
Các lỗi thường gặp khi sử dụng json_decode
Bây giờ bạn đã hiểu cách chuyển đổi đối tượng JSON thành mảng trong PHP bằng json_decode, hãy xem một số lỗi phổ biến khi sử dụng hàm này
Cách tốt nhất để học code là tự mình thực hành. Đoạn mã trên nêu bật một số lỗi phổ biến khi sử dụng json_decode. Cố gắng khắc phục mã này ở cuối của bạn. Các ý kiến trong mã đưa ra rất nhiều gợi ý
Phần kết luận
Đó là nó cho bài viết này. Bạn đã xem cách chuyển đổi đối tượng JSON thành mảng trong PHP. json_decode là chức năng phù hợp để làm như vậy. Bạn đã thấy cách sử dụng cũng như một số lỗi phổ biến có thể xảy ra. Hãy theo dõi để biết thêm nội dung thông tin liên quan đến PHP
Bạn muốn khám phá thêm các bài hướng dẫn PHP hữu ích?
Chúng tôi có nhiều bài viết thú vị liên quan đến PHP. Bạn có thể khám phá những điều này để tìm hiểu thêm về PHP
Cách chuyển đổi mảng thành JSON trong PHP
2 tùy chọn để nhận xét mã trong PHP
Tạo một mảng kết hợp trong PHP
Bài viết liên quan
- ← Cách chuyển đổi một mảng kết hợp sang CSV PHP Code Ví dụ
- Cách chuyển đổi mảng thành JSON trong PHP →
Stephen Phép Lạ
Chào. Tôi hy vọng bạn thích bài viết này. Tôi đã phát triển các trang web và phần mềm một cách chuyên nghiệp trong hơn 20 năm. Tôi bắt đầu FuelingPHP như một cách để đền đáp lại cộng đồng nguồn mở đã giúp tôi có thể sống thoải mái khi xây dựng những thứ tôi yêu thích