JSON Cơ Bản Cho Người Mới Bắt Đầu
JSON Là Gì JSON là một kiểu định dạng dữ liệu được sử dụng phổ biến ngày nay. Dữ liệu lưu trữ theo định dạng JSON chỉ bao gồm các chuỗi ký tự (string) hay nói cách khác JSON chỉ lưu trữ văn bản thuần tuý. Ví dụ chúng ta có một chuỗi JSON như sau dùng để lưu trữ thông tin của một người dùng: ...
JSON Là Gì
JSON là một kiểu định dạng dữ liệu được sử dụng phổ biến ngày nay. Dữ liệu lưu trữ theo định dạng JSON chỉ bao gồm các chuỗi ký tự (string) hay nói cách khác JSON chỉ lưu trữ văn bản thuần tuý.
Ví dụ chúng ta có một chuỗi JSON như sau dùng để lưu trữ thông tin của một người dùng:
{ username: "johndoe", email: "johndoe@example.net", age: 24, gender: "male" }
JSON được xây dựng dựa trên một tiêu chuẩn của ngôn ngữ JavaScrip và là viết tắt của cụm từ JavaScript Object Notation. Do đó dữ liệu JSON có định dạng giống như một object trong JavaScript. Sử dụng JavaScript chúng ta có thể dễ dàng chuyển đổi một chuỗi JSON sang object của ngôn ngữ này sử dụng JSON.parse():
var my_json_string = '{"name":"John","age":24}'; var obj = JSON.parse(my_json_string);
Giá trị của biến obj trong đoạn code trên sẽ là một đối tượng JavaScript:
{name: "John", age: 24}
Cú Pháp
JSON có cú pháp giống với một object của JavaScript.
JSON có thể là một chuỗi:
var obj = "abc"; var json_string = JSON.stringify(obj); // "abc"
JSON có thể là một mảng:
var obj = [1, 2]; var json_string = JSON.stringify(obj); // "[1,2]"
JSON có thể là một object tầm thường của JavaScript (literal object):
var obj = {name: "John"}; var json_string = JSON.stringify(obj); // "{"name":"John"}"
Kiểm Tra Định Dạng JSON
Để kiểm tra một chuỗi có định dạng JSON hợp lệ hay không chúng ta có thể dùng hàm JSON.parse() ví dụ:
var my_json = "[1, 2]"; JSON.parse(my_json); // [1, 2]
Hoặc:
var my_json = '"abc"'; JSON.parse(my_json); // "abc"
Lưu ý: khi bạn khai báo một chuỗi theo định dạng JSON trong JavaScript bạn cần sử dụng ký tự ngoặc kép " thay vì dấu nháy '. Ví dụ chuỗi JSON sau là hợp lệ:
var validJSON = '{"name": "John"}'; JSON.parse(validJSON); // Object {name: "John"}
Hoặc:
var validJSON = "{"name": "John"}"; JSON.parse(validJSON); // Object {name: "John"}
Tuy nhiên chuỗi sau là không hợp lệ:
var InvalidJSON = "{name: 'John'}"; JSON.parse(InvalidJSON); // báo lỗi
Tương tự chuỗi sau cũng không hợp lệ:
var invalidJSON = "a"; JSON.parse(InvalidJSON); // báo lỗi
Trường hợp trên chúng ta cần viết như sau:
var validJSON = '"a"'; // hoặc ""a"" JSON.parse(validJSON); // báo lỗi
JSON và Các Ngôn Ngữ Lập Trình Khác
Do được sử dụng khá phổ biến nên không chỉ có JavaScript mà hầu hết các ngôn ngữ lập trình khác cũng đều hỗ trợ kiểu dữ liệu JSON. Với PHP chúng ta có hai hàm json_encode() (tương tự như JSON.stringify()) và json_decode (tương tự như JSON.parse()):
$obj = new stdClass(); $obj->name = "John"; $obj->age = 24; $json_string = json_encode($obj); echo $json_string; // {"name":"John","age":24} $json_object = json_encode($json_string); var_dump($json_object); // string(32) ""{"name":"John","age":24}""