Diary of Duc

PHP – Xử lý JSON

2017-10-25

JSON (JavaScript Object Noattion) là 1 kiểu dữ liệu dạng text thuần, dạng dữ liệu kiểu keyvalue, được dùng trong NoSQL Database, được hầu hết các ngôn ngữ lập trình hỗ trợ. Các API hiện nay thường trả về kết quả là một chuỗi JSON, ứng dụng thuộc những nền tảng khác nhau sẽ dùng nó để giao tiếp với nhau.

Trong PHP, ta có thể đọc, xuất ra 1 JSON bằng cách sử dụng hàm json_decode()json_encode()

Đọc JSON

Sử dụng hàm json_decode() để đọc JSON.

Đọc từ chuỗi:

Để chuyển JSON sang dạng mảng ta truyền “true” vào trong hàm json_decode().

Vì khóa “devices” có giá trị là mảng nên phải chỉ ra phần từ mảng cần đọc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$json = '{
"id": "100005950149538",
"name": "Nguyễn Minh Đức",
"birthday": "02/25/1997",
"email": "duc2521997@gmail.com",
"devices": [
{
"hardware": "iPhone",
"os": "iOS"
}
]
}';

$arrray = json_decode($json,true); //conver to Arrray
echo $arrray['name'];
echo $arrray['devices'][0]['hardware'].'<br>';

$obj = json_decode($json); //conver to Object
echo $obj->name;
echo $obj->devices[0]->hardware;
?>


Đọc từ url:
Đây là url chứa json cần đọc: https://techitvn.com/temp/json/

Ta sẽ sử dụng hàm file_get_contents() để lấy nội dung từ url.

1
2
3
4
5
6
7
8
9
10
11
<?php
$get_json = file_get_contents('https://techitvn.com/temp/json/');

$array = json_decode($get_json,true);
echo $array['name'];
echo $array['devices'][0]['hardware'].'<br>';

$obj = json_decode($get_json);
echo $obj->name;
echo $obj->devices[0]->hardware;
?>

Xuất JSON

Sử dụng hàm json_encode() để xuất JSON.

Sử dụng header(‘Content-Type: application/json; charset=UTF-8’) để định dạng hiện thị kiểu JSON ra trình duyệt.

Xuất từ mảng:

1
2
3
4
5
6
7
8
9
<?php 
header('Content-Type: application/json; charset=UTF-8');
$devices_info[] = array('hardware'=>'iPhone','os'=>'iOS');
$array = array('id'=>'100005950149538','name'=>'Nguyễn Minh Đức', 'birthday'=>'02/25/1997', 'email'=>'duc2521997@gmail.com','devices'=>$devices_info);

$myJSON = json_encode($array);

echo $myJSON;
?>

Xuất từ đối tượng:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php 
header('Content-Type: application/json; charset=UTF-8');
class json{
public $id,$name,$birthday,$email,$devices;
}

$devices_info[] = array('hardware'=>'iPhone','os'=>'iOS');

$myObj = new json();

$myObj->id = "100005950149538";
$myObj->name = 'Nguyễn Minh Đức';
$myObj->birthday = '02/25/1997';
$myObj->email = 'duc2521997@gmail.com';
$myObj->devices = $devices_info;

$myJSON = json_encode($myObj);

echo $myJSON;
?>

URL QR