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
e muốn viết 1 file truyền dữ liệu dạng json thi viet lam sao ạ co thể chi e ko ạ
Số lượt thíchSố lượt thích
Chào Nhi,
Tôi chưa rõ ý của em như thế nào, em nói rõ hơn nhé
Số lượt thíchSố lượt thích
bị lỗi, chỉnh lại tí mới được, ka ka
Số lượt thíchSố lượt thích
[…] khảo php – json, JavaEE restful, c#-json, […]
Số lượt thíchSố lượt thích
[…] PHP to JSON – Chuyển dữ liệu sang JSON trong PHP […]
Số lượt thíchSố lượt thích
Parse error: syntax error, unexpected ‘[‘ in C:\AppServ\www\HocJson\Bai4\classJson.php on line 12
Số lượt thíchLiked by 1 person
ban xem lại phiên bản php nhe
Số lượt thíchSố lượt thích
alo chao ban.
Minh lam viet giong ban nhung no bao loi nay la sao minh khong biet sua hoai ma khong duoc.
Số lượt thíchSố lượt thích