Cách giải mã mảng JSON trong PHP

Hướng dẫn này bao gồm các chi tiết cơ bản của hàm PHP json_encode. Nó đưa ra các ví dụ về giải mã đầu vào chuỗi JSON thành một mảng PHP

Nó cũng mô tả các quy ước, quy tắc và giới hạn của hàm PHP JSON này. Trước tiên, hãy xem một ví dụ nhanh về chuyển đổi JSON thành một mảng

Chuyển đổi mảng JSON sang PHP

Ví dụ này có một chuỗi JSON ánh xạ con vật với số lượng của nó. Đầu ra của việc chuyển đổi JSON này sẽ trả về một mảng kết hợp

Nó sử dụng PHP json_decode[] với boolean true làm tham số thứ hai. Với các tham số giải mã này, JSON sẽ được chuyển đổi thành một mảng PHP

ví dụ nhanh


đầu ra

array[4] {
  ["Lion"]=>
  int[101]
  ["Tiger"]=>
  int[102]
  ["Crocodile"]=>
  int[103]
  ["Elephant"]=>
  int[104]
}

Xem bản trình diễn trực tuyến này để nhận kết quả mảng đã chuyển đổi từ đầu vào JSON.
Xem minh họa

Xem sơ đồ hiển thị chuỗi JSON đầu vào và đối tượng stdClass đầu ra của giải mã JSON. Trong bài viết trước, chúng ta đã xem các ví dụ về hoạt động đảo ngược chuyển đổi một mảng PHP thành một chuỗi JSON

PHP json_decode[]

Hàm PHP gốc này giải mã chuỗi JSON thành một cây đối tượng có thể phân tích cú pháp hoặc một mảng. Đây là cú pháp của chức năng này

json_decode[
    string $json,
    ?bool $associative = null,
    int $depth = 512,
    int $flags = 0
]: mixed
  1. $json – Nhập chuỗi JSON
  2. $associative – một boolean dựa trên đó định dạng đầu ra khác nhau giữa một mảng kết hợp và một đối tượng stdClass
  3. $độ sâu – giới hạn lồng nhau được phép
  4. $flag – Xác định trước các hằng số để kích hoạt các tính năng như xử lý ngoại lệ trong quá trình chuyển đổi JSON thành mảng

Bạn có thể tìm hiểu thêm về chức năng này trong tài liệu chính thức trực tuyến

Chuyển đổi đối tượng JSON sang PHP

Chương trình này có một thay đổi nhỏ là không đặt cờ boolean cho hàm PHP json_decode. Điều này sẽ trả về một cây đối tượng PHP stdClass thay vì một mảng

name;
?>

đầu ra

Lion

Các lỗi thường gặp trong quá trình chuyển đổi từ JSON sang Array

Chuỗi JSON sau đây là một đối tượng JSON hợp lệ trong JavaScript, nhưng không có ở đây trong PHP. Vấn đề là trích dẫn duy nhất. Nó nên được thay đổi thành một trích dẫn kép

Nếu bạn muốn xem ví dụ JavaScript để đọc và hiển thị dữ liệu JSON, bài viết được liên kết có mã


Cách chuyển đổi JSON với số nguyên lớn

Điều này có thể đạt được bằng cách đặt tham số bitmask của các hằng số JSON được xác định trước

Hằng số JSON_BIGINT_AS_STRING dùng để chuyển đổi JSON với dữ liệu có số nguyên lớn


đầu ra

object[stdClass]#1 [1] {
  ["number"]=>
  string[20] "12345678901234567890123"
}

Cách nhận lỗi khi sử dụng json_decode

Hàm json_last_error[] được sử dụng để trả về thông tin chi tiết về lần xuất hiện lỗi cuối cùng. Ví dụ sau xử lý các trường hợp lỗi có thể xảy ra của hàm PHP JSON này


SỰ NGẠC NHIÊN. Chuyển đổi JSON sang Array và Array sang JSON không đối xứng


đầu ra

array[4] {
  ["Lion"]=>
  int[101]
  ["Tiger"]=>
  int[102]
  ["Crocodile"]=>
  int[103]
  ["Elephant"]=>
  int[104]
}
0

Đối tượng PHP hiện đã được thay đổi thành một mảng PHP. Bạn có thể không mong đợi nó

array[4] {
  ["Lion"]=>
  int[101]
  ["Tiger"]=>
  int[102]
  ["Crocodile"]=>
  int[103]
  ["Elephant"]=>
  int[104]
}
1

Ở trên sẽ không trả lại dữ liệu về dạng ban đầu

Đầu ra của giải mã thành mảng PHP và mã hóa từ mảng PHP không phải lúc nào cũng đối xứng. Tuy nhiên, đầu ra của giải mã từ các đối tượng stdClass và mã hóa thành các đối tượng stdClass luôn đối xứng

Vì vậy, nếu bạn có kế hoạch thực hiện chuyển đổi theo chu kỳ giữa mảng PHP và chuỗi JSON, thì trước tiên hãy chuyển đổi mảng PHP thành một đối tượng. Việc chuyển đổi JSON

Đôi khi, khi cố gắng giải mã JSON thành một mảng, hầu hết các nhà phát triển đều gặp lỗi. Nếu bạn cũng gặp phải vấn đề như vậy trong quá trình thực hành lập trình của mình, thì đoạn trích này là dành cho bạn

Sau đây, chúng tôi sẽ chỉ ra những cách khắc phục khó khăn như vậy

Theo tài liệu PHP, cần phải cho biết liệu bạn có muốn lấy một mảng kết hợp thay vì một đối tượng từ json_decode hay không, mã sẽ như sau

array[4] {
  ["Lion"]=>
  int[101]
  ["Tiger"]=>
  int[102]
  ["Crocodile"]=>
  int[103]
  ["Elephant"]=>
  int[104]
}
2

Trong hàm json_decode, có một tham số được gọi là assoc. Nó nhằm mục đích chuyển đổi các đối tượng được trả về thành các mảng kết hợp

Đây là cách nó trông giống như

array[4] {
  ["Lion"]=>
  int[101]
  ["Tiger"]=>
  int[102]
  ["Crocodile"]=>
  int[103]
  ["Elephant"]=>
  int[104]
}
3

Tuy nhiên, lưu ý rằng vì tham số assoc được đặt thành FALSE, nên cần phải đặt nó thành TRUE để truy xuất một mảng

Đây là một ví dụ khác

array[4] {
  ["Lion"]=>
  int[101]
  ["Tiger"]=>
  int[102]
  ["Crocodile"]=>
  int[103]
  ["Elephant"]=>
  int[104]
}
2

Các kết quả đầu ra của đoạn mã trên là

Hàm json_decode được sử dụng để lấy một chuỗi được mã hóa JSON và chuyển đổi nó thành một biến PHP

Nó có bốn tham số. json, assoc, độ sâu và các tùy chọn

Khi tham số assoc là TRUE, thì các đối tượng được trả về sẽ được chuyển đổi thành mảng kết hợp

Hàm json_encode có khả năng trả về giá trị được mã hóa trong JSON theo kiểu PHP phù hợp

Làm cách nào để giải mã dữ liệu được mã hóa JSON trong PHP?

Giải mã dữ liệu JSON trong PHP. Rất dễ dàng để giải mã dữ liệu JSON trong PHP. Bạn chỉ cần sử dụng hàm json_decode[] để chuyển đổi đối tượng JSON sang kiểu dữ liệu PHP thích hợp . Thí dụ. Theo mặc định, hàm json_decode[] trả về một đối tượng. Bạn có thể tùy chọn chỉ định tham số thứ hai chấp nhận giá trị boolean.

Làm cách nào để lấy khóa và giá trị từ đối tượng mảng JSON trong PHP?

sda","003. sda"],"S03". ["001. klm","002. klm"]}']; foreach[$json as $key => $val] { echo "KEY IS. $key"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>"; foreach[[[array]$json][$key] as $val2] { echo "GIÁ TRỊ LÀ. $val2"; } } ?>

Làm cách nào để chuyển đổi mảng JSON thành chuỗi trong PHP?

Để làm điều này, hãy chuyển một mảng và một dấu phân cách cho hàm implode[]; . Hàm json_encode[] chuyển đổi một mảng thành một chuỗi JSON . Nó lấy một mảng làm đầu vào và trả về một biểu diễn mảng JSON. Hàm serialize[] lấy một mảng và chuyển đổi nó thành một chuỗi.

Làm cách nào để sử dụng mảng JSON trong PHP?

Tệp PHP được giải thích. .
Chuyển đổi yêu cầu thành một đối tượng, sử dụng hàm PHP json_decode[]
Truy cập cơ sở dữ liệu và điền vào một mảng với dữ liệu được yêu cầu
Thêm mảng vào một đối tượng và trả về đối tượng dưới dạng JSON bằng hàm json_encode[]

Chủ Đề