JSON [Ký hiệu đối tượng JavaScript] là một định dạng trao đổi dữ liệu nhẹ. Như tên gọi của nó, JSON có nguồn gốc từ ngôn ngữ lập trình JavaScript, nhưng nó có sẵn để sử dụng cho nhiều ngôn ngữ bao gồm Python, Ruby, PHP và Java, và do đó, có thể nói nó là ngôn ngữ độc lập. Đối với con người thì dễ đọc và viết còn đối với máy thì dễ phân tích và tạo. Nó rất hữu ích cho việc lưu trữ và trao đổi dữ liệu
Đối tượng JSON là định dạng dữ liệu khóa-giá trị thường được hiển thị trong dấu ngoặc nhọn. Đối tượng JSON bao gồm các dấu ngoặc nhọn [ { } ] ở hai đầu và có các cặp khóa-giá trị bên trong dấu ngoặc nhọn. Mỗi cặp khóa-giá trị bên trong dấu ngoặc nhọn được phân tách bằng dấu phẩy [,]. Đối tượng JSON trông giống như thế này
{ "key":"value", "key":"value", "key":"value", }
Ví dụ cho một đối tượng JSON
{ "rollno":101", "name":"Nikita", "age":21, }
Chuyển đổi văn bản JSON thành Đối tượng Javascript. Văn bản/đối tượng JSON có thể được chuyển đổi thành đối tượng Javascript bằng hàm JSON. phân tích cú pháp []
JSON. Phương thức parse[] trong JavaScript được sử dụng để phân tích chuỗi JSON được viết ở định dạng JSON và trả về một đối tượng JavaScript
Giả sử chúng ta có một đối tượng phức tạp và chúng ta muốn chuyển đổi nó thành một chuỗi, để gửi nó qua mạng hoặc chỉ xuất nó cho mục đích ghi nhật ký
Đương nhiên, một chuỗi như vậy phải bao gồm tất cả các thuộc tính quan trọng
Chúng tôi có thể thực hiện chuyển đổi như thế này
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
…Nhưng trong quá trình phát triển, các thuộc tính mới được thêm vào, các thuộc tính cũ được đổi tên và loại bỏ. Cập nhật
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
1 như vậy mỗi lần có thể trở thành một nỗi đau. Chúng ta có thể thử lặp qua các thuộc tính trong đó, nhưng nếu đối tượng phức tạp và có các đối tượng lồng nhau trong các thuộc tính thì sao? May mắn thay, không cần phải viết mã để xử lý tất cả những điều này. Nhiệm vụ đã được giải quyết rồi
JSON. xâu chuỗi lại
JSON [Ký hiệu đối tượng JavaScript] là định dạng chung để biểu thị các giá trị và đối tượng. Nó được mô tả như trong tiêu chuẩn RFC 4627. Ban đầu, nó được tạo cho JavaScript, nhưng nhiều ngôn ngữ khác cũng có thư viện để xử lý nó. Vì vậy, thật dễ dàng để sử dụng JSON để trao đổi dữ liệu khi máy khách sử dụng JavaScript và máy chủ được viết trên Ruby/PHP/Java/Sao cũng được
JavaScript cung cấp các phương thức
2 để chuyển đối tượng thành JSON// a number in JSON is just a number alert[ JSON.stringify[1] ] // 1 // a string in JSON is still a string, but double-quoted alert[ JSON.stringify['test'] ] // "test" alert[ JSON.stringify[true] ]; // true alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
3 để chuyển đổi JSON trở lại thành một đối tượng// a number in JSON is just a number alert[ JSON.stringify[1] ] // 1 // a string in JSON is still a string, but double-quoted alert[ JSON.stringify['test'] ] // "test" alert[ JSON.stringify[true] ]; // true alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
Ví dụ, ở đây chúng tôi
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
2 một sinh viênlet student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
Phương thức
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
5 lấy đối tượng và chuyển đổi nó thành một chuỗiChuỗi
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
6 kết quả được gọi là một đối tượng được mã hóa hoặc tuần tự hóa hoặc sắp xếp theo thứ tự JSON. Chúng tôi đã sẵn sàng để gửi nó qua dây hoặc đưa vào kho lưu trữ dữ liệu đơn giảnXin lưu ý rằng một đối tượng được mã hóa JSON có một số điểm khác biệt quan trọng so với đối tượng theo nghĩa đen
- Chuỗi sử dụng dấu ngoặc kép. Không có dấu ngoặc đơn hoặc backticks trong JSON. Vì vậy,
7 trở thành// a number in JSON is just a number alert[ JSON.stringify[1] ] // 1 // a string in JSON is still a string, but double-quoted alert[ JSON.stringify['test'] ] // "test" alert[ JSON.stringify[true] ]; // true alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
8// a number in JSON is just a number alert[ JSON.stringify[1] ] // 1 // a string in JSON is still a string, but double-quoted alert[ JSON.stringify['test'] ] // "test" alert[ JSON.stringify[true] ]; // true alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
- Tên thuộc tính đối tượng cũng được trích dẫn kép. Đó là bắt buộc. Vì vậy,
9 trở thành// a number in JSON is just a number alert[ JSON.stringify[1] ] // 1 // a string in JSON is still a string, but double-quoted alert[ JSON.stringify['test'] ] // "test" alert[ JSON.stringify[true] ]; // true alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
{ "rollno":101", "name":"Nikita", "age":21, }
30
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
2 cũng có thể được áp dụng cho người nguyên thủyJSON hỗ trợ các kiểu dữ liệu sau
- Đối tượng
{ "rollno":101", "name":"Nikita", "age":21, }
32 - Mảng
{ "rollno":101", "name":"Nikita", "age":21, }
33 - nguyên thủy
- dây,
- con số,
- giá trị boolean
{ "rollno":101", "name":"Nikita", "age":21, }
34, { "rollno":101", "name":"Nikita", "age":21, }
35
Ví dụ
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
JSON là đặc tả ngôn ngữ độc lập với dữ liệu, do đó, một số thuộc tính đối tượng dành riêng cho JavaScript bị bỏ qua bởi
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
2cụ thể là
- Thuộc tính hàm [phương thức]
- Các khóa và giá trị tượng trưng
- Thuộc tính lưu trữ
{ "rollno":101", "name":"Nikita", "age":21, }
37
{ "rollno":101", "name":"Nikita", "age":21, }3
Thường thì tốt thôi. Nếu đó không phải là điều chúng tôi muốn, thì chúng tôi sẽ sớm xem cách tùy chỉnh quy trình
Điều tuyệt vời là các đối tượng lồng nhau được hỗ trợ và chuyển đổi tự động
Ví dụ
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
3Hạn chế quan trọng. không được có tham chiếu vòng tròn
Ví dụ
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
4Ở đây, việc chuyển đổi không thành công, vì tham chiếu vòng tròn.
{ "rollno":101", "name":"Nikita", "age":21, }38 tài liệu tham khảo
{ "rollno":101", "name":"Nikita", "age":21, }39, và
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
30 tài liệu tham khảo let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
31Loại trừ và biến đổi. người thay thế
Cú pháp đầy đủ của
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
2 là// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
0valueMột giá trị để mã hóa. replacerMảng thuộc tính để mã hóa hoặc hàm ánh xạ let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
33. không gianSố lượng không gian để sử dụng để định dạngHầu hết thời gian,
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
2 chỉ được sử dụng với đối số đầu tiên. Nhưng nếu chúng ta cần tinh chỉnh quy trình thay thế, chẳng hạn như lọc ra các tham chiếu vòng, chúng ta có thể sử dụng đối số thứ hai của // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
2Nếu chúng ta chuyển một mảng thuộc tính cho nó, thì chỉ những thuộc tính này sẽ được mã hóa
Ví dụ
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
4Ở đây có lẽ chúng ta quá khắt khe. Danh sách thuộc tính được áp dụng cho toàn bộ cấu trúc đối tượng. Vì vậy, các đối tượng trong
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
36 trống, vì let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
37 không có trong danh sáchHãy đưa vào danh sách mọi thuộc tính ngoại trừ
{ "rollno":101", "name":"Nikita", "age":21, }38 sẽ gây ra tham chiếu vòng
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
8Bây giờ mọi thứ ngoại trừ
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
39 đều được đăng nhiều kỳ. Nhưng danh sách tài sản khá dàiMay mắn thay, chúng ta có thể sử dụng một hàm thay vì một mảng như
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
40Hàm sẽ được gọi cho mỗi cặp
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
41 và sẽ trả về giá trị “đã thay thế”, giá trị này sẽ được sử dụng thay cho giá trị ban đầu. Hoặc { "rollno":101", "name":"Nikita", "age":21, }37 nếu giá trị bị bỏ qua
Trong trường hợp của chúng tôi, chúng tôi có thể trả về
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
43 “nguyên trạng” cho mọi thứ ngoại trừ let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
39. Để bỏ qua let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
39, mã bên dưới trả về { "rollno":101", "name":"Nikita", "age":21, }37
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
7Xin lưu ý rằng hàm
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
40 nhận mọi cặp khóa/giá trị bao gồm các đối tượng lồng nhau và các mục mảng. Nó được áp dụng đệ quy. Giá trị của let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
48 bên trong let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
40 là đối tượng chứa thuộc tính hiện tạiCuộc gọi đầu tiên là đặc biệt. Nó được tạo bằng cách sử dụng một “đối tượng bao bọc” đặc biệt.
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
00. Nói cách khác, cặp let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
41 đầu tiên có một khóa trống và giá trị là toàn bộ đối tượng mục tiêu. Đó là lý do tại sao dòng đầu tiên là // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
02 trong ví dụ trênÝ tưởng là cung cấp càng nhiều năng lượng cho
let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
40 càng tốt. nó có cơ hội phân tích và thay thế/bỏ qua toàn bộ đối tượng nếu cầnđịnh dạng. khoảng trống
Đối số thứ ba của
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
04 là số lượng khoảng trống để sử dụng cho định dạng đẹpTrước đây, tất cả các đối tượng được xâu chuỗi đều không có khoảng cách thụt vào và khoảng trắng thừa. Điều đó tốt nếu chúng ta muốn gửi một đối tượng qua mạng. Đối số
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
05 được sử dụng riêng cho đầu ra đẹpỞ đây
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
06 yêu cầu JavaScript hiển thị các đối tượng lồng nhau trên nhiều dòng, với thụt lề 2 khoảng trắng bên trong một đối tượnglet student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
0Đối số thứ ba cũng có thể là một chuỗi. Trong trường hợp này, chuỗi được sử dụng để thụt đầu dòng thay vì một số khoảng trắng
Tham số
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
05 chỉ được sử dụng cho mục đích ghi nhật ký và đầu ra đẹpTùy chỉnh “toJSON”
Giống như
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
1 để chuyển đổi chuỗi, một đối tượng có thể cung cấp phương thức // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
09 để chuyển đổi sang JSON. // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
2 tự động gọi nó nếu cóVí dụ
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
1Ở đây chúng ta có thể thấy rằng
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
41 // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
42 đã trở thành một chuỗi. Đó là bởi vì tất cả các ngày đều có phương thức // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
09 tích hợp trả về loại chuỗi như vậyBây giờ, hãy thêm một
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
09 tùy chỉnh cho đối tượng của chúng ta let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
31 // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
46let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
2Như chúng ta có thể thấy,
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
09 được sử dụng cho cả cuộc gọi trực tiếp // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
48 và khi let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
31 được lồng trong một đối tượng được mã hóa khácJSON. phân tích cú pháp
Để giải mã một chuỗi JSON, chúng ta cần một phương thức khác có tên JSON. phân tích cú pháp
cú pháp
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
3chuỗi strJSON để phân tích cú pháp. hồi sinh Hàm tùy chọn [khóa, giá trị] sẽ được gọi cho mỗi cặp let user = {
name: "John",
age: 30,
toString[] {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert[user]; // {name: "John", age: 30}
41 và có thể chuyển đổi giá trịVí dụ
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
4Hoặc cho các đối tượng lồng nhau
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
5JSON có thể phức tạp đến mức cần thiết, các đối tượng và mảng có thể bao gồm các đối tượng và mảng khác. Nhưng chúng phải tuân theo cùng một định dạng JSON
Dưới đây là những lỗi điển hình trong JSON viết tay [đôi khi chúng ta phải viết nó cho mục đích gỡ lỗi]
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
6Ngoài ra, JSON không hỗ trợ bình luận. Thêm một nhận xét vào JSON làm cho nó không hợp lệ
Có một định dạng khác có tên JSON5, cho phép các khóa, nhận xét không được trích dẫn, v.v. Nhưng đây là một thư viện độc lập, không có trong đặc điểm kỹ thuật của ngôn ngữ
JSON thông thường nghiêm ngặt như vậy không phải vì các nhà phát triển của nó lười biếng, mà để cho phép triển khai thuật toán phân tích cú pháp dễ dàng, đáng tin cậy và rất nhanh
sử dụng hồi sinh
Hãy tưởng tượng, chúng ta có một đối tượng
{ "rollno":101", "name":"Nikita", "age":21, }39 được xâu chuỗi từ máy chủ
Nó trông như thế này
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
7…Và bây giờ chúng ta cần deserialize nó, để quay lại thành đối tượng JavaScript
Hãy làm điều đó bằng cách gọi
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
3let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
spouse: null
};
let json = JSON.stringify[student];
alert[typeof json]; // we've got a string!
alert[json];
/* JSON-encoded object:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"spouse": null
}
*/
8Rất tiếc. Một lỗi
Giá trị của
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
83 là một chuỗi, không phải đối tượng // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
84. Làm thế nào mà // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
3 có thể biết rằng nó sẽ biến đổi chuỗi đó thành một // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
84?Hãy chuyển sang hàm phục hồi
// a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
3 làm đối số thứ hai, trả về tất cả các giá trị “nguyên trạng”, nhưng // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
41 sẽ trở thành một // a number in JSON is just a number
alert[ JSON.stringify[1] ] // 1
// a string in JSON is still a string, but double-quoted
alert[ JSON.stringify['test'] ] // "test"
alert[ JSON.stringify[true] ]; // true
alert[ JSON.stringify[[1, 2, 3]] ]; // [1,2,3]
84