TRENDING
Hoclamweb.com.vn
  • Trang Chủ
  • Case Study làm web
  • Khóa học làm web
  • Kiến thức kinh doanh
  • Kiến thức SEO web
  • Plugin cho website
  • Trang Chủ
  • Case Study làm web
  • Khóa học làm web
  • Kiến thức kinh doanh
  • Kiến thức SEO web
  • Plugin cho website
Trang chủ Kiến thức Làm web

Tổng hợp về json_decode trong php mới nhất 2020

Bởi ATPMedia
22/11/2019
Json Decode Trong Php

Json_decode trong php là một trong những keyword được search nhiều nhất trên Google về chủ đề json_decode trong php. Trong bài viết này, hoclamweb.vn sẽ viết bài viết Tổng hợp về json_decode trong php mới nhất 2020.

Json Decode Trong Php

Tổng hợp về json_decode trong php mới nhất 2020

Trong PHP người đọc dùng hàm số để convert data thành định hướng JSON và để decode định hình JSON.

JSON là gì?

JSON là viết tắt của cụm từ “JavaScript Object Notation”, là công thức để giới thiệu object trong giải quyết của java script.

json_encode là gì? Để conver trị giá chỉ định thành định dạng JSON, người đọc sử dụng hàm số json_encode. Hàm số json_encode được viết như sau:

mẹo viết:

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ỉ thẩm định giá trị tùy ý không giống với định dạng resource toàn bộ 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à đủ nội lực 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ề trị giá vừa mới encode JSON, trường hợp giải quyết 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.

phương pháp dùng json_encode sử dụng hàm json_encode để convert trị giá string chỉ định thành định hình JSON.

Sample program:

ví dụ 1 json_encode():

 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

kết quả output của gợi ý trên sẽ giống như sau:

"a":1,"b":2,"c":3,"d":4,"e":5

gợi ý 2 json_encode() , ví dụ hiển thị vài option vừa mới sử dụng:

',"'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: ["","'bar'","\"baz\"","&blong&","\u00e9"]
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Apos: ["","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Quot: ["","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Amp: ["","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["","'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"

ví dụ 3 JSON_NUMERIC_CHECK option:

kết quả output của gợi ý trên sẽ như sau:

Strings representing numbers automatically turned into numbers
array(4) 
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"

string(28) "[123123,-123123,1200,1.0e-5]"
Strings containing improperly formatted numbers
array(2) 
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"

string(24) "["+a33123456789","a123"]"

gợi ý 4 về sequential and nonsequential sequences:

"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
 $nonsequential,
 json_encode($nonsequential)
);

echo PHP_EOL."Sequential array with one key unset".PHP_EOL;
unset($sequential[1]);
var_dump(
 $sequential,
 json_encode($sequential)
);
?>

hiệu quả output của gợi ý trên sẽ giống như sau:

Sequential array
array(4) 
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"

string(27) "["foo","bar","baz","blong"]"

Non-sequential array
array(4) 
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"

string(43) ""1":"foo","2":"bar","3":"baz","4":"blong""

Sequential array with one key unset
array(3) 
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"

string(33) ""0":"foo","2":"baz","3":"blong""

gợi ý 5 JSON_PRESERVE_ZERO_FRACTION option:

hiệu quả output của ví dụ trên sẽ như sau:

string(4) "12.0"
string(2) "12"

json_decode là gì?

Để nhận và giải mã chuỗi đang mã hóa JSON, người xem dùng hàm json_decode. Giải mã nói một mẹo đơn giản là khôi phục dữ liệu vừa mới được mã hoá trở về bản gốc. Hàm json_decode được mô tả giống như sau.

hướng dẫn viết:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Argument:

  • json: Chuỗi ký tự json thị trườ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 người dùng chỉ định.
  • options: Đây là một bitmask của tùy lựa chọn giải mã JSON. ngày nay, có hai option được support.
  1. JSON_BIGINT_AS_STRING
  2. JSON_OBJECT_AS_ARRAY

Lưu ý: Hàm số này chỉ hoạt động đối với chuỗi ký tự đang 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êm vào TRUE, FALSE và NULL. Nếu json k thể giải mã hoặc dữ liệu được mã hoá vượt quá hạn chế đệ quy, nó sẽ trả về NULL.

cách dùng json_decode Sau đây là hướng dẫn dùng hàm json_decode và phương pháp decode cho giá trị dạng chuỗi đã chỉ định.

Sample program:

ví dụ 1 json_decode():

"a":1,"b":2,"c":3,"d":4,"e":5';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

hiệu quả output của gợi ý trên sẽ giống 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)

gợi ý 2 Truy cập phân khúc 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 giống 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 thị trường, hãy đặt tên các phần tử trong dấu ngoặc nhọn và dấu nháy.

"foo-bar": 12345';

$obj = json_decode($json);
print $obj->'foo-bar'; // 12345

?>

ví dụ 3 Một lỗi đa dạng trong json_decode ():

không hợp lệ với JSON

// Tên và giá trị phải được để trong ngoặc kép.
// không thể sử dụng dấu nháy đơn
$bad_json = " 'bar': 'baz' ";
json_decode($bad_json); // null

// Tên phải được để trong ngoặc kép
$bad_json = ' bar: "baz" ';
json_decode($bad_json); // null

// k đặt dấu phẩy vào cuối
$bad_json = ' bar: "baz", ';
json_decode($bad_json); // null

?>

ví dụ 4 depth error:

 array(
            'English' => array(
                'One',
                'January'
            ),
            'French' => array(
                'Une',
                'Janvier'
            )
        )
    )
);

// định nghĩa lỗi
$constants = get_defined_constants(true);
$json_errors = array();
foreach ($constants["json"] as $name => $value) 
    if (!strncmp($name, "JSON_ERROR_", 11)) 
        $json_errors[$value] = $name;
    


// Lỗi hiển thị ở các độ sâu khác nhau
foreach (range(4, 3, -1) as $depth) 
    var_dump(json_decode($json, true, $depth));
    echo 'Last error: ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;

?>

hiệu quả output của ví dụ trên sẽ giống như sau:

array(1) 
  [1]=>
  array(2) 
    ["English"]=>
    array(2) 
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    
    ["French"]=>
    array(2) 
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    
  

Last error: JSON_ERROR_NONE

NULL
Last error: JSON_ERROR_DEPTH

gợi ý 5 ví dụ về xử lý các số nguyên to với json_decode ():

"number": 12345678901234567890';

var_dump(json_decode($json));
var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));

?>

kết quả output của ví dụ trên sẽ giống như sau:

object(stdClass)#1 (1) 
  ["number"]=>
  float(1.2345678901235E+19)

object(stdClass)#1 (1) 
  ["number"]=>
  string(20) "12345678901234567890"

Chú ý:

  • Specs JSON chẳng phải là JavaScript, nó là một tập kết con của JavaScript.
  • Nếu giải mã k thành đạt, bạn đủ sức sử dụng json_last_error () để biết chuẩn xác trạng thái của error.

nguồn: viblo.asia

Liên QuanBài Viết

Thiết kế Website nội Thất chuyên Nghiệp cần Lưu ý gì? Tmarketing
Kiến thức Làm web

Thiết kế Website nội Thất chuyên Nghiệp cần Lưu ý gì? Tmarketing

12/09/2021
Cách xây dựng website có giao diện trên Mobile thân thiện với người dùng
Kiến thức Làm web

Cách xây dựng website có giao diện trên Mobile thân thiện với người dùng

22/04/2021
Tại sao doanh nghiệp cần có website?
Kiến thức Làm web

Tại sao doanh nghiệp cần có website?

04/01/2022
Thiết kế trang web chuyên nghiệp cao cấp Tp. HCM – Cánh Cam
Kiến thức Làm web

Thiết kế trang web chuyên nghiệp cao cấp Tp. HCM – Cánh Cam

17/03/2021
Tao Sao Nen Su Dung Landing Page
Chưa được phân loại

Kinh nghiệm xây dựng landing page hiệu quả

03/10/2020
HƯỚng DẪn TÍch HỢp Livechat Tawk To LÊn Landing Page
Case Study làm web

HƯỚNG DẪN TÍCH HỢP LIVECHAT TAWK TO LÊN LANDING PAGE

24/09/2020
Bài Viết Tiếp Theo
Nâng Cao Lưu Vào Bộ Nhớ đệm Trong Trình Duyệt

Hướng dẫn nâng cao lưu vào bộ nhớ đệm trong trình duyệt mới nhất 2020

Bài Viết Mới

DỊCH VỤ SEO TẠI HÀ NỘI GIÚP TĂNG TRƯỞNG DOANH THU BỀN VỮNG

DỊCH VỤ SEO TẠI HÀ NỘI GIÚP TĂNG TRƯỞNG DOANH THU BỀN VỮNG

17/06/2022
Thiết kế website thực phẩm chức năng chất lượng, uy tín hàng đầu

Thiết kế website thực phẩm chức năng chất lượng, uy tín hàng đầu

26/04/2022
Funny Dev giải pháp số chuyên nghiệp uy tín

Funny Dev giải pháp số chuyên nghiệp uy tín

25/04/2022
Motor Điện 3 Pha 2Hp 1.5Kw Parma

Motor Điện 3 Pha 2Hp 1.5Kw Parma

15/04/2022
Những cầu thủ xuất sắc nhất của Bà Đầm Già trong hơn một thế kỷ qua?

Những cầu thủ xuất sắc nhất của Bà Đầm Già trong hơn một thế kỷ qua?

27/03/2022
Cách massage giảm đau do viêm khớp

Cách massage giảm đau do viêm khớp

21/03/2022

Bài viết mới

  • DỊCH VỤ SEO TẠI HÀ NỘI GIÚP TĂNG TRƯỞNG DOANH THU BỀN VỮNG
  • Thiết kế website thực phẩm chức năng chất lượng, uy tín hàng đầu
  • Funny Dev giải pháp số chuyên nghiệp uy tín
  • Motor Điện 3 Pha 2Hp 1.5Kw Parma
  • Những cầu thủ xuất sắc nhất của Bà Đầm Già trong hơn một thế kỷ qua?

HỌC LÀM WEB

Hoclamweb.com.vn là một website tổng hợp kiến thức làm web cho người mới bắt đầu, chia sẻ về kiến thức làm web, plugin hỗ trợ thiết kế web, kiến thức SEO cho website đầy đủ nhất.

Chuyên mục

  • Case Study
  • Tài Liệu PDF
  • Kiến Thức SEO
  • Plugin Cho Website
  • Khóa Học Làm Web
  • Kiến Thức Kinh Doanh

Phần mềm - Công cụ

  • Brands
  • Alosoft
  • Seeding
  • Top Việc
  • Tổng Hợp
  • Quản Trị Nhân Sự

Liên kết

  • Xe Mô Tô
  • Quản Lý Kho
  • Blog Việc Làm
  • Giải Pháp Việc Làm
  • Phần Mềm Miễn Phí
  • Cách khai báo sitemap

© 2019 | Thiết Kế bởi ATP MEDIA

  • Trang Chủ
  • Case Study làm web
  • Khóa học làm web
  • Kiến thức kinh doanh
  • Kiến thức SEO web
  • Plugin cho website

Hoclamweb.com.vn là một website tổng hợp kiến thức làm web cho người mới bắt đầu, cổng thông tin về kiến thức làm web, plugin hỗ trợ thiết kế web, kiến thức SEO cho website đầy đủ nhất.