PHP to JSON – Chuyển dữ liệu sang JSON trong PHP


JSON đang dần thay thế XML trong việc làm định dữ liệu trung gian giữa các hệ thống khác nhau. Đối với PHP phiên bản lớn hơn 5.4.0 cũng đã hỗ trợ thư viện chuyển đối sang JSON và ngược lại.

JsonSerializable::jsonSerialize là thư việc chuyển từ PHP sang JSON với sự hỗ trợ của hàm json_encode

Ví dụ với dữ liệu chuỗi đơn giản

1 <?php 2 // tạo lớp chuyển đối 3 class StringValue implements JsonSerializable { 4 public function __construct($string) { 5 $this->string = (string) $string; 6 } 7 8 public function jsonSerialize() { 9 return $this->string; 10 } 11 } 12 // in ra với client có thể lấy dữ liệu này về 13 echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT); 14 ?>

Ví dụ với số nguyên

1 <?php 2 class IntegerValue implements JsonSerializable { 3 public function __construct($number) { 4 $this->number = (integer) $number; 5 } 6 public function jsonSerialize() { 7 return $this->number; 8 } 9 } 10 echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT); 11 ?>

Kết quả

1

Với định dạng mảng

1 <?php 2 class ArrayValue implements JsonSerializable { 3 public function __construct(array $array) { 4 $this->array = $array; 5 } 6 7 public function jsonSerialize() { 8 return $this->array; 9 } 10 } 11 $array = [1, 2, 3]; 12 echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT); 13 ?>

Kết quả

1 [ 2 1, 3 2, 4 3 5 ]

Tương tự như vậy cho mảng chuỗi

1 <?php 2 class ArrayValue implements JsonSerializable { 3 public function __construct(array $array) { 4 $this->array = $array; 5 } 6 7 public function jsonSerialize() { 8 return $this->array; 9 } 10 } 11 12 $array = ['foo' => 'bar', 'quux' => 'baz']; 13 echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT); 14 ?>

Và kết quả chúng ta có là

1 { 2 "foo": "bar", 3 "quux": "baz" 4 }

Ví dụ chúng ta lấy dữ liệu từ MySQL và chuyển sang JSON

http://www.w3resource.com/JSON/JSON-example.php

Ví dụ chúng ta có bảng

sanpham(id,ten,gia)

id ten gia
1 Nokia 525 3000000
2 Apple Macbook Pro 20000000
1 $sql="select * from sanpham"; 2 $result=mysql_query($sql); 3 $json=array(); 4 while($row=mysql_fetch_array($result)) 5 { 6 $sanpham=array(); 7 $sanpham["id"]=$row["id"]; 8 $sanpham["ten"]=$row["ten"]; 9 $sanpham["gia"]=$row["gia"]; 10 11 array_push($json["sanpham"],$sanpham); 12 } 13 echo json_encode($json);

Và kết quả là

1 "sanpham": 2 [ 3 { 4 "id":"1", 5 "ten":"Nokia 525", 6 "gia":"3000000", 7 }, 8 { 9 "id":"2", 10 "ten":"Apple Macbook Pro", 11 "gia":"20000000" 12 } 13 ]

Cũng hay đó chứ !

Kết hợp với bài này sẽ giúp xử lý JSON trên Android nhẹ nhàng hơn

Advertisements

6 thoughts on “PHP to JSON – Chuyển dữ liệu sang JSON trong PHP

Phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s