JSON là định dạng tốt nhất để truyền dữ liệu qua mạng. Nó là một định dạng có thể phân tích cú pháp tương đối dễ dàng. Đó là lý do tại sao hầu hết API chấp nhận các tham số và trả về phản hồi trong JSON.
Có các công cụ trực tuyến để chuyển đổi một mảng thành một đối tượng JSON. Hướng dẫn này dạy cách tạo một chương trình để chuyển đổi các loại đầu vào mảng PHP khác nhau thành định dạng JSON.
Nó có 4 ví dụ khác nhau để chuyển đổi một mảng PHP sang JSON. Những mục đích đó là quá nhỏ để giúp người mới bắt đầu có thể hiểu khái niệm này một cách dễ dàng.
Mục lục
Ví dụ nhanh
Ví dụ nhanh này được mã hóa đơn giản bằng một giải pháp đơn giản ba dòng. Nó sử dụng một mảng PHP đơn chiều và chuyển đổi nó thành JSON.
<?php
$array = array(100, 250, 375, 400);
$jsonString = json_encode($array);
echo $jsonString;
?>
Xem Demo
Các ví dụ từ mảng sang JSON khác nhau xử lý việc chuyển đổi mảng từ đơn giản đến phức tạp. Nó cũng áp dụng sửa đổi trước (như ánh xạ mảng) trước khi chuyển đổi. Bốn ví dụ là,
- Từ mảng PHP đơn giản đến phức tạp đến JSON.
- Loại bỏ các khóa mảng trước khi chuyển đổi sang JSON.
- Chuyển đổi mảng PHP với các ký tự có dấu sang JSON
- Mảng PHP sang JSON với tính năng in ấn đẹp mắt
Nếu bạn muốn mã đảo ngược để giải mã các đối tượng JSON thành một mảng, thì bài viết được liên kết có các ví dụ.
Xem bản trình diễn trực tuyến này để chuyển đổi một mảng các giá trị được phân tách bằng dấu phẩy thành một đối tượng JSON.
1) Mảng PHP từ đơn giản đến phức tạp đến JSON
Đoạn mã này xử lý 3 kiểu dữ liệu mảng thành một đối tượng JSON. Trong PHP, rất dễ dàng chuyển đổi một mảng sang JSON.
Nó là mã một dòng bằng cách sử dụng hàm PHP json_encode ().
<?php
// PHP Array to JSON string conversion for
// simple, associative and multidimensional arrays
// all works the same way using json_encode
// just present different arrays for example purposes only
// simple PHP Array to JSON string
echo '<h1>PHP Array to JSON</h1>';
$array = array(
100,
250,
375,
400
);
$jsonString = json_encode($array);
echo $jsonString;
// Associative Array to JSON
echo '<h2>Associative PHP Array to JSON</h2>';
$array = array(
'e1' => 1000,
'e2' => 1500,
'e3' => 2000,
'e4' => 2350,
'e5' => 3000
);
$jsonString = json_encode($array);
echo $jsonString;
// multidimensional PHP Array to JSON string
echo '<h2>Multidimensional PHP Array to JSON</h2>';
$multiArray = array(
'a1' => array(
'item_id' => 1,
'name' => 'Lion',
'type' => 'Wild',
'location' => 'Zoo'
),
'a2' => array(
'item_id' => 2,
'name' => 'Cat',
'type' => 'Domestic',
'location' => 'Home'
)
);
echo json_encode($multiArray);
?>
Đầu ra:
//PHP Array to JSON
[100,250,375,400]
//Associative PHP Array to JSON
{"e1":1000,"e2":1500,"e3":2000,"e4":2350,"e5":3000}
//Multidimensional PHP Array to JSON
{"a1":{"item_id":1,"name":"Lion","type":"Wild","location":"Zoo"},"a2":{"item_id":2,"name":"Cat","type":"Domestic","location":"Home"}}
2) Xóa các khóa mảng trước khi chuyển đổi sang JSON
Mã này xử lý một kịch bản chuyển đổi JSON khác, điều này phải hữu ích nếu cần. Ví dụ: nếu mảng liên kết chủ đề => dấu và người dùng chỉ cần các dấu để vẽ nó trong biểu đồ.
Nó loại bỏ các khóa do người dùng xác định khỏi một mảng kết hợp và áp dụng json_encode để chuyển đổi nó. Đó là một quá trình gồm hai bước.
- Nó áp dụng PHP array_values () để đọc mảng giá trị.
- Sau đó, nó áp dụng json_encode trên mảng giá trị.
<?php
// array_values() to remove assigned keys and convert to the original PHP Array key
echo '<h1>To remove assigned associative keys and PHP Array to JSON</h1>';
$array = array(
'e1' => 1000,
'e2' => 1500,
'e3' => 2000,
'e4' => 2350,
'e5' => 3000
);
$jsonString = json_encode(array_values($array));
echo $jsonString;
?>
Đầu ra:
[1000,1500,2000,2350,3000]
3) Chuyển đổi mảng PHP với các ký tự có dấu sang JSON
Nó cũng là một quá trình hai bước để chuyển đổi mảng dữ liệu có chứa các ký tự có dấu.
Nó áp dụng mã hóa UTF8 trên các giá trị mảng trước khi chuyển đổi chúng thành một đối tượng JSON.
Để mã hóa tất cả các phần tử của mảng đã cho, nó ánh xạ utf8_encode () dưới dạng một lệnh gọi lại bằng cách sử dụng hàm array_map () trong PHP.
Chúng ta đã thấy các hàm mảng PHP thường được sử dụng khi làm việc với mảng.
<?php
// Accented characters
// to preserve accented characters during PHP Array to JSON conversion
// you need to utf8 encode the values and then do json_encode
echo '<h1>For accented characters PHP Array to JSON</h1>';
$array = array(
'w1' => 'résumé',
'w2' => 'château',
'w3' => 'façade',
'w4' => 'déjà vu',
'w5' => 'São Paulo'
);
$utfEncodedArray = array_map("utf8_encode", $array);
echo json_encode($utfEncodedArray);
?>
Đầu ra:
{"w1":"r\u00c3\u00a9sum\u00c3\u00a9","w2":"ch\u00c3\u00a2teau","w3":"fa\u00c3\u00a7ade","w4":"d\u00c3\u00a9j\u00c3\u00a0 vu","w5":"S\u00c3\u00a3o Paulo"}
4) Mảng PHP sang JSON với tính năng in ấn đẹp mắt
Nó áp dụng cho prettyprint trên các thuộc tính JSON đầu ra được chuyển đổi ở định dạng rộng rãi neet.
Hàm json_encode () trong PHP chấp nhận tham số thứ hai để thiết lập cờ bitmask. Cờ này được sử dụng để đặt JSON_PRETTY_PRINT để căn chỉnh các thuộc tính JSON đầu ra.
<?php
// to neatly align the output with spaces
// it may be useful when you plan to print the
// JSON output in a raw format
// helpful when debugging complex multidimensional PHP Arrays and JSON objects
// lot more constants are available like this, which might be handy in situations
echo '<h1>Convert PHP Array to JSON and Pretty Print</h1>';
$array = array(
'e1' => 1000,
'e2' => 1500,
'e3' => 2000,
'e4' => 2350,
'e5' => 3000
);
echo json_encode($array, JSON_PRETTY_PRINT);
?>
Đầu ra:
{ "e1": 1000, "e2": 1500, "e3": 2000, "e4": 2350, "e5": 3000 }
Tải xuống