JSON là một trong những định dạng phổ biến nhất để biểu diễn dữ liệu dưới dạng văn bản. Ví dụ: JSON được sử dụng để truyền dữ liệu giữa giao diện người dùng và phụ trợ, trong các tệp cấu hình, trong trò chơi, trong trình soạn thảo văn bản và trong nhiều lĩnh vực khác. Là một lập trình viên, chắc chắn bạn sẽ gặp JSON.

Giới thiệu cú pháp

Hãy liệt kê các kiểu dữ liệu có sẵn trong JSON:

  1. Chuỗi là bất kỳ ký tự nào được đặt trong dấu ngoặc kép:

    "kwerty"
    "125 + 42"
    "g"

    Các ký tự đặc biệt được thoát bằng dấu gạch chéo:

    "dòng đầu tiên\ndòng thứ hai"
    "Anh ấy nói xin chào!\""
  2. Số, bao gồm số âm và số thực. Không có báo giá:

    18 -333 17,88 1,2e6
  3. Các giá trị Boolean là đúng / sai (không có dấu ngoặc kép).

  4. null là giá trị tiêu chuẩn để đại diện cho "không có gì". Không có dấu ngoặc kép được sử dụng ở đây.

  5. Mảng - Loại này có thể chứa các giá trị của bất kỳ loại nào khác. Nó được bao bọc trong dấu ngoặc vuông. Các phần tử của nó được phân tách bằng dấu phẩy:

    ["Code", "Gym", "CodeGym", "¯\_(ツ)_/¯"]
    [đúng, đúng, sai, đúng, sai, sai, sai, sai, sai]
    [[1, 2], [3, 999, 4, -5], [77]]

    Ví dụ cuối cùng là một mảng các mảng

  6. Đối tượng — Loại phức tạp này được sử dụng phổ biến nhất. Nó chứa các cặp khóa-giá trị, trong đó giá trị có thể là bất kỳ loại nào được liệt kê ở trên, cũng như các đối tượng khác. Nó được bọc trong dấu ngoặc nhọn và các cặp được phân tách bằng dấu phẩy:

    
    {
     "name": "Dale",
     "age": 7
    }
    

Biểu diễn một đối tượng Java dưới dạng JSON

Bây giờ, hãy lấy một số đối tượng Java và xem nó trông như thế nào dưới dạng JSON.

Đầu tiên, hãy định nghĩa một lớp:


public class Human {
	String name;
	boolean male;
	int age;
	Set<Human> parents;

	public Human(String name, boolean male, int age) {
    	    this.name = name;
    	    this.male = male;
    	    this.age = age;
	}
}

Bây giờ hãy tạo đối tượng của chúng ta:


	Human father = new Human("Peter", true, 31);
	Human mother = new Human("Mary", false, 28);
	mother.parents = new HashSet<>();
	Human son = new Human("Paul", true, 7);
	son.parents = Set.of(father, mother);

Và bây giờ chúng ta hãy cố gắng đại diện choCon traiđối tượng càng chính xác càng tốt ở định dạng JSON:

{
 "tên" : "Paul",
 "nam" : đúng,
 "tuổi" : 7,
 "cha mẹ" : [
 {
   "tên" : "Peter",
   "nam" : đúng,
   "tuổi" : 31,
   "cha mẹ" : null
 },
 {
   "tên" : "Maria",
   "nam" : sai,
   "tuổi" : 28,
   "cha mẹ" : null
 }
]
}

Nhận xét trong JSON

Mọi thứ ở đây hoàn toàn giống như trong Java. Có hai loại nhận xét: // và /*...*/. Tôi hy vọng tôi không cần phải nhắc bạn rằng chúng khác nhau như thế nào?