Json_encode Và Json_decode Trong PHP - Hoclaptrinh
Có thể bạn quan tâm
Trong PHP người ta sử dụng hàm số để convert data thành định dạng JSON và để decode định dạng JSON.
JSON là gì? JSON là viết tắt của cụm từ “JavaScript Object Notation”, là cách thức để mô tả object trong xử lý của java script.
json_encode là gì?
Để conver giá trị chỉ định thành định dạng JSON, người ta sử dụng hàm số json_encode. Hàm số json_encode được viết như sau:
Cú pháp json_encode :
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
Argument:
- Biến thứ nhất value: Giá trị encode. Chỉ định string hoặc array để convert sang định dạng JSONCó thể chỉ định giá trị tùy ý khác với định dạng resource Tất cả data dạng chuỗi phải encoding bằng UTF-8.
- Biến thứ 2 options: Set được việc sẽ convert theo định dạng như thế nào và có thể chỉ định được constant bằng các option. JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR
- Biến thứ 3 depth: Chỉ định được max depth bằng số nguyên.
Giá trị trả về: Hàm json_encode trả về giá trị đã encode JSON, trường hợp xử lý lỗi sẽ trả về FALSE.
Lưu ý: Tất cả các string data convert phải được encode thành encoding UTR-8.
Cách sử dụng json_encode
Sử dụng hàm json_encode để convert giá trị string chỉ định thành định dạng JSON.
Ví dụ 1 json_encode():
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>Kết quả output của ví dụ trên sẽ như sau:
{"a":1,"b":2,"c":3,"d":4,"e":5}
Ví dụ 2 json_encode() , ví dụ hiển thị vài option đang sử dụng:
<?php $a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9"); echo "Normal: ", json_encode($a), "\n"; echo "Tags: ", json_encode($a, JSON_HEX_TAG), "\n"; echo "Apos: ", json_encode($a, JSON_HEX_APOS), "\n"; echo "Quot: ", json_encode($a, JSON_HEX_QUOT), "\n"; echo "Amp: ", json_encode($a, JSON_HEX_AMP), "\n"; echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n"; echo "All: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n"; $b = array(); echo "Empty array output as array: ", json_encode($b), "\n"; echo "Empty array output as object: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n"; $c = array(array(1,2,3)); echo "Non-associative array output as array: ", json_encode($c), "\n"; echo "Non-associative array output as object: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n"; $d = array('foo' => 'bar', 'baz' => 'long'); echo "Associative array always output as object: ", json_encode($d), "\n"; echo "Associative array always output as object: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n"; ?>Kết quả output của ví dụ trên sẽ như sau:
Normal: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"] Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"] Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"] Quot: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"] Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"] Unicode: ["<foo>","'bar'","\"baz\"","&blong&","e"] All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","e"] Empty array output as array: [] Empty array output as object: {} Non-associative array output as array: [[1,2,3]] Non-associative array output as object: {"0":{"0":1,"1":2,"2":3}} Associative array always output as object: {"foo":"bar","baz":"long"} Associative array always output as object: {"foo":"bar","baz":"long"}json_decode là gì?
Để nhận và giải mã chuỗi đã mã hóa JSON, người ta sử dụng hàm json_decode. Giải mã nói một cách đơn giản là khôi phục dữ liệu đã được mã hoá trở về bản gốc. Hàm json_decode được mô tả như sau.
Cú pháp json_decode
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Argument:
- json: Chuỗi ký tự json đối tượng decode.
- assoc: Trường hợp là TRUE , thì object trả về có định dạng array kết hợp.
- depth: Độ sâu đệ quy do user chỉ định.
- options: Đây là một bitmask của tùy chọn giải mã JSON. Hiện tại, có hai option được hỗ trợ.
- JSON_BIGINT_AS_STRING
- JSON_OBJECT_AS_ARRAY
Lưu ý: Hàm số này chỉ hoạt động đối với chuỗi ký tự đã encoding bằng UTF-8.
Giá trị trả về: Trả về dữ liệu được mã hóa trong json thành kiểu PHP thích hợp TRUE, FALSE và NULL. Nếu json không thể giải mã hoặc dữ liệu được mã hoá vượt quá giới hạn đệ quy, nó sẽ trả về NULL.
Cách sử dụng json_decode
Sau đây là cách sử dụng hàm json_decode và phương pháp decode cho giá trị dạng chuỗi đã chỉ định.
Ví dụ 1 json_decode():
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>Kết quả output của ví dụ trên sẽ như sau:
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) } array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }Ví dụ 2 Truy cập đối tượng thuộc tính không hợp lệ:
Để truy cập các phần tử chứa các ký tự (chẳng hạn như các dấu nối) không thể được sử dụng trong các quy ước đặt tên PHP trong các đối tượng, hãy đặt tên các phần tử trong dấu ngoặc nhọn và dấu nháy.
<?php $json = '{"foo-bar": 12345}'; $obj = json_decode($json); print $obj->{'foo-bar'}; // 12345 ?>__Chú ý:__
Specs JSON không phải là JavaScript, nó là một tập hợp con của JavaScript. Nếu giải mã không thành công, bạn có thể sử dụng json_last_error () để biết chính xác trạng thái của error.
Từ khóa » Json_encode Dùng để Làm Gì
-
Json_encode Và Json_decode Trong PHP - Viblo
-
Hàm Json_encode() Trong PHP Dùng để Làm Gì? - Code Từ Tâm
-
Xử Lý JSON Trong PHP - Các Ví Dụ Về JSON PHP Và MYSQL - Freetuts
-
Hàm Json_encode, Json_decode Trong PHP - Quách Quỳnh
-
Json_encode: Hàm Chuyển Mảng Thành Json Trong Php - .vn
-
Tìm Hiểu Về Json_encode Và Json_decode Trong PHP
-
Cho Biết Sự Khác Nhau Giữa Serialize Và Json_encode? Lý Giải Theo ...
-
Json_Encode: Hàm Chuyển Mảng Thành Json Trong Php
-
Php — Làm Thế Nào để Mảng Json_encode Có Dấu Tiếng Pháp?
-
Tại Sao Hàm Json_encode Của PHP Chuyển đổi Các Chuỗi UTF-8 ...
-
Sử Dụng Json_encode Trên Các đối Tượng Trong PHP (bất Kể Phạm Vi)
-
Hiểu Rõ Về JSON Là Gì? Cách Lấy Dữ Liệu Từ JSON | TopDev
-
Xử Lý Dữ Liệu JSON Trong PHP - Góc Học IT
-
Tuyển Tập Những Câu Hỏi Phỏng Vấn PHP Thường Gặp Nhất - TopCV