Tải bản đầy đủ (.docx) (9 trang)

Bài tập lớn môn thiết kế ngoại vi và kĩ thuật ghép nối (20)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (170.45 KB, 9 trang )

Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

Đề tài: TIÊU CHUẨN ĐÓNG GÓI JSON
Người soạn báo cáo: Vương Viết Thao – B18DCDT237
Vương Viết Thao(NT)
Chu Xuân Quang
Nguyễn Đức Long
Trịnh Thị Thu
Nguyễn Đức Nguyện

I.

B18DCDT237
B18DCDT189
B18DCDT129
B18DCDT249

JSON - Lịch sử tóm tắt
Nhu cầu giao tiếp máy chủ với máy khách theo thời gian thực dẫn đến việc tạo ra JSON. Định
dạng JSON lần đầu tiên được Douglas Crockford chỉ định vào tháng 3 năm 2001. JSON dựa trên
Standard ECMA-262 Phiên bản thứ 3 — tháng 12 năm 1999, là một tập hợp con của
JavaScript. Ấn bản đầu tiên của tiêu chuẩn JSON ECMA-404 được Ecma International xuất bản
vào tháng 10 năm 2013. RFC 7159 đã trở thành tài liệu tham khảo chính cho việc sử dụng
Internet của JSON vào năm 2014. Vào tháng 11 năm 2017, ISO / IEC 21778: 2017 đã được xuất
bản như một tiêu chuẩn quốc tế. RFC 8259 được xuất bản vào ngày 13 tháng 12 năm 2017 bởi
Lực lượng Đặc nhiệm Kỹ thuật Internet, đây là phiên bản hiện tại của Tiêu chuẩn Internet STD
90.

II.



JSON là gì ? “What is JSON?”
JSON là một định dạng tệp được sử dụng để lưu trữ thơng tin một cách có tổ chức và dễ
truy cập. Dạng đầy đủ của nó là JavaScript Object Notation. Nó cung cấp một bộ sưu tập
dữ liệu mà con người có thể đọc được và có thể được truy cập một cách hợp lý. Phần mở
rộng tên tệp của nó cho mã lập trình đã viết là .json. Loại phương tiện Internet cho JSON
là application / json và Định danh loại thống nhất của nó là public.json. bạn sẽ học những

III.

Một số thông tin cơ bản về JSON như:
Tại sao phải sử dụng JSON ? Why use JSON?
Cung cấp hỗ trợ cho tất cả các trình duyệt dễ đọc và viết cú pháp đơn giản
Bạn có thể phân tích cú pháp trong JavaScript bằng cách sử dụng hàm eval () dễ dàng để
tạo và thao tác được hỗ trợ bởi tất cả các khung
JavaScript chính được hỗ trợ bởi hầu hết các công nghệ phụ trợ JSON được
JavaScript cũng được cơng nhận bởi JavaScript nó cho phép bạn truyền tải và tuần tự hóa
dữ liệu có cấu trúc bằng kết nối mạng.
Bạn có thể sử dụng nó với các ngơn ngữ lập trình hiện đại.

Tra n g |1


Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

JSON là văn bản có thể được chuyển đổi thành bất kỳ đối tượng nào của JavaScript thành
IV.


JSON và gửi JSON này đến máy chủ.
Tính năng của JSON
Dễ sử dụng - JSON API cung cấp mặt tiền cấp cao, giúp bạn đơn giản hóa các trường hợp
sử dụng thường được sử dụng.
Hiệu suất - JSON khá nhanh vì nó tiêu tốn rất ít dung lượng bộ nhớ, điều này đặc biệt
thích hợp cho các hệ thống hoặc đồ thị đối tượng lớn.
Cơng cụ miễn phí
- Thư viện JSON là mã nguồn mở và sử dụng miễn phí. Khơng u cầu tạo ánh xạ Jackson API cung cấp ánh xạ mặc định cho nhiều đối tượng được tuần tự hóa. JSON sạch

V.

- Tạo kết quả JSON sạch và tương thích, dễ đọc. Sự phụ thuộc
- Thư viện JSON không yêu cầu bất kỳ thư viện nào khác để xử lý.
Quy tắc , cú pháp của JSON
Các quy tắc cho cú pháp JSON là: Dữ liệu phải nằm trong cặp tên / giá trị
Dữ liệu phải được phân tách bằng dấu phẩy
Dấu ngoặc nhọn giữ đối tượng Dấu ngoặc vuông giữ mảng
VD: var json-object-name = { string : number_value,......}
Dữ liệu JSON được viết trong các cặp khóa / giá trị. Khóa và giá trị được phân tách bằng
dấu hai chấm (:) ở giữa với khóa ở bên trái và giá trị ở bên phải. Các cặp khóa / giá trị
khác nhau được phân tách bằng dấu phẩy (,). Khóa là một chuỗi được bao quanh bởi dấu






ngoặc kép, ví dụ như “tên”. Các giá trị có thể thuộc các loại sau.
Con số
Chuỗi: Chuỗi ký tự Unicode được bao quanh bởi dấu ngoặc kép.

Boolean: Đúng hay Sai.
Mảng: Ví dụ: danh sách các giá trị được bao quanh bởi dấu ngoặc vuông
[ "Apple", "Banana", "Orange" ]
Đối tượng: Ví dụ: một tập hợp các cặp khóa / giá trị được bao quanh bởi dấu ngoặc nhọn
{"name": "Jack", "age": 30, "favoriteSport" : "Football"}

VI.

Các kiểu dữ liệu JSON và ví dụ
JSON có thể được sử dụng trong các chương trình JavaScript mà khơng cần phân tích cú
pháp hoặc tuần tự hóa.
Đây là một cách dựa trên văn bản để biểu diễn các ký tự, mảng và dữ liệu vô hướng của
đối tượng JavaScript.
JSON tương đối dễ đọc và dễ viết, đồng thời dễ dàng cho phần mềm phân tích cú pháp
và tạo. Nó thường được sử dụng để tuần tự hóa dữ liệu có cấu trúc và trao đổi qua mạng,
thường là giữa máy chủ và các ứng dụng web.
Ở cấp độ chi tiết, JSON bao gồm các kiểu dữ liệu.
1. String
Chuỗi trong JSON bao gồm các ký tự Unicode, với dấu gạch chéo ngược (\) thoát ra.
Tra n g |2


Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

Example
{ "name" : "Jones" }
2. Number
Số JSON tuân theo định dạng dấu phẩy động chính xác kép của JavaScript.

Example
{
"number_1" : 210,
"number_2" : 215,
"number_3" : 21.05,
"number_4" : 10.05
}
3. Boolean
Giá trị boolean được chỉ định là true hoặc false. Giá trị boolean không được bao
quanh trong dấu ngoặc kép và được coi là giá trị chuỗi.
Example
{ "AllowPartialShipment" : false }
4. Null

Null là một giá trị trống. Khi khơng có giá trị nào được gán cho một khóa, nó có thể
được coi là null.
Example
{ "Special Instructions" : null }
5. Object

Kiểu dữ liệu đối tượng JSON là một tập hợp các cặp tên hoặc giá trị được chèn vào
giữa dấu {} (dấu ngoặc nhọn). Các khóa phải là chuỗi và phải được phân tách duy
nhất bằng dấu phẩy.
Example
{
"Influencer" : { "name" : "Jaxon" , "age" : "42" , "city" , "New York" }
}
6. Array
Kiểu dữ liệu mảng là một tập hợp các giá trị có thứ tự. Trong JSON, các giá trị mảng
phải có kiểu chuỗi, số, đối tượng, mảng, Boolean hoặc null.

Example
{
"Influencers" : [
{
"name" : "Jaxon",
"age" : 42,
"Works At" : "Tech News"
}
Tra n g |3


Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

{
"name" : "Miller",
"age" : 35
"Works At" : "IT Day"
}
]
}
VII.
Các trường hợp sử dụng hàng đầu cho JSON
1. Tạo đối tượng JSON từ dữ liệu do người dùng tạo
JSON hoàn hảo để lưu trữ dữ liệu tạm thời. Ví dụ: dữ liệu tạm thời có thể là dữ liệu do
người dùng tạo, chẳng hạn như biểu mẫu đã gửi trên trang web. JSON cũng có thể được
sử dụng làm định dạng dữ liệu cho bất kỳ ngơn ngữ lập trình nào để cung cấp khả năng
tương tác cao.
2. Truyền dữ Liệu giữa các Hệ thống

Cơ sở dữ liệu trang web có địa chỉ gửi thư của khách hàng, nhưng địa chỉ này cần được
xác minh qua API để đảm bảo địa chỉ đó hợp lệ. Gửi dữ liệu địa chỉ ở định dạng JSON
tới API dịch vụ xác thực địa chỉ.
3. Cấu hình dữ liệu cho các ứng dụng

Khi phát triển ứng dụng, mỗi ứng dụng cần thông tin xác thực để kết nối với cơ sở dữ
liệu cũng như đường dẫn tệp nhật ký. Thông tin đăng nhập và đường dẫn tệp có thể được
chỉ định trong tệp JSON để có thể đọc và khả dụng.
4. Đơn giản hóa các mơ hình dữ liệu phức tạp

JSON đơn giản hóa các tài liệu phức tạp xuống các thành phần đã được xác định là có ý
nghĩa bằng cách chuyển đổi q trình trích xuất dữ liệu thành tệp JSON có thể dự đốn
VIII.

và con người có thể đọc được.
Tại sao JSON phổ biến với các nhà phát triển
JSON đã đạt được động lượng trong lập trình mã API và các dịch vụ web vì nó giúp thay
đổi liên lạc dữ liệu và kết quả dịch vụ web nhanh hơn. Nó dựa trên văn bản, nhẹ và có
định dạng dữ liệu dễ phân tích, khơng u cầu mã bổ sung để phân tích cú pháp. Đối với
các dịch vụ web, cần phải trả về và hiển thị rất nhiều dữ liệu khiến JSON trở thành lựa
chọn lý tưởng.
1. Cơ sở dữ liệu tài liệu là gì?

Cơ sở dữ liệu tài liệu là một loại cơ sở dữ liệu không quốc tế được thiết kế để lưu trữ,
truy xuất và quản lý thông tin định hướng tài liệu. Thay vì có một lược đồ được xác định
trước, cơ sở dữ liệu tài liệu cho phép lưu trữ dữ liệu trong các bộ sưu tập bao gồm các tài
liệu. Cơ sở dữ liệu NoSQL và cơ sở dữ liệu JSON là loại cơ sở dữ liệu tài liệu. Cơ sở dữ
Tra n g |4



Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

liệu tài liệu thường phổ biến trong số các nhà phát triển vì chúng lưu trữ dữ liệu ở định
dạng mơ hình tài liệu (bán cấu trúc) thay vì quan hệ (có cấu trúc). Cơ sở dữ liệu tài liệu
cung cấp tính linh hoạt hơn, bởi vì các nhà phát triển không phải lên kế hoạch cho các
lược đồ trước thời hạn và chúng có thể sử dụng cùng một định dạng mà họ đang sử dụng
trong mã ứng dụng của họ. Điều này có nghĩa là kế hoạch cẩn thận của cơ sở dữ liệu SQL
không cần thiết, làm cho cơ sở dữ liệu tài liệu hữu ích cho các lược đồ phát triển nhanh
chóng, có thể phổ biến trong phát triển phần mềm. Nhưng điều này có thể đến chi phí tốc
độ, kích thước và độ đặc hiệu.
2. Cơ sở dữ liệu tài liệu JSON là gì?
Các ứng dụng sử dụng các loại dữ liệu JSON khác nhau và ngơn ngữ truy vấn định
hướng JSON có thể tương tác với dữ liệu được lưu trữ trong cơ sở dữ liệu tài liệu JSON.
Cơ sở dữ liệu tài liệu JSON cũng cung cấp hỗ trợ riêng cho JSON.
Đặc điểm xác định cơ sở dữ liệu tài liệu JSON: Cơ sở dữ liệu tài liệu JSON là một cơ sở
dữ liệu không hợp lý được thiết kế để lưu trữ và truy vấn dưới dạng tài liệu JSON Dữ
liệu JSON trong cơ sở dữ liệu là văn bản, nhưng văn bản có thể được lưu trữ bằng cách
sử dụng Dữ liệu Blob, VARCHAR2, CLOB hoặc JSON nhị phân Kiểu dữ liệu trong 21C
Truy cập dữ liệu JSON được lưu trữ trong cơ sở dữ liệu tương tự như truy cập dữ liệu
cơ sở dữ liệu khác, bao gồm cả dữ liệu OCI, .NET và JDBC trong cơ sở dữ liệu tài liệu
JSON có thể được lưu trữ, lập chỉ mục và truy vấn mà không cần một lược đồ Xác định
dữ liệu
3. Làm việc với cơ sở dữ liệu tài liệu JSON

Như đã nêu trước đó, JSON S định dạng truyền dữ liệu nhẹ đã đặt tiêu chuẩn để trao đổi
tài liệu. Chúng ta hãy xem cách lưu trữ và quản lý dữ liệu JSON trong cơ sở dữ liệu tài
liệu JSON.
4. Lưu trữ dữ liệu JSON


Lưu trữ dữ liệu JSON trong cơ sở dữ liệu tài liệu JSON sử dụng các cột có loại dữ liệu là
VARCHAR2, CLOB, BLOB hoặc loại dữ liệu JSON nhị phân trong 21C. Sự lựa chọn
sử dụng nào được sử dụng thường được xác định bởi kích thước của các tài liệu JSON.
Lưu trữ dữ liệu JSON trong cơ sở dữ liệu bằng cách sử dụng các loại dữ liệu SQL tiêu
chuẩn có nghĩa là dữ liệu JSON có thể được thao tác như bất kỳ loại dữ liệu nào khác.
5. Quản lý dữ liệu JSON

Dữ liệu JSON có thể được quản lý và thao tác với các bảng trong cơ sở dữ liệu tài liệu
JSON, bất kể loại dữ liệu nào, việc lựa chọn bảng nào sẽ sử dụng thường được thúc đẩy

Tra n g |5


Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

bởi kích thước của các tài liệu JSON. Một trong những tính năng của cơ sở dữ liệu đang
có thể dễ dàng sao chép các bảng có các cột bằng dữ liệu JSON.
6. Các trường hợp sử dụng cơ sở dữ liệu tài liệu JSON
Một cơ sở dữ liệu tài liệu JSON gốc cung cấp cho các nhà phát triển khả năng xem, tạo
và cuối cùng biết nhiều hơn. Các khách hàng không chỉ được xác định là tên và địa chỉ,
các thuộc tính tương ứng của chúng có thể được gán dưới dạng giá trị và xuất hiện trong
các mảng để biết các khuyến nghị sản phẩm được cá nhân hóa và nhiều cam kết hấp dẫn
hơn. Hiệu quả của dữ liệu JSON tùy thuộc vào cơ sở dữ liệu cung cấp năng lượng cho
nó.
7. Dữ liệu JSON và cơ sở dữ liệu tự trị
Cơ sở dữ liệu tài liệu JSON không chỉ cung cấp hỗ trợ gốc cho các loại dữ liệu JSON; Nó
cũng cho phép di chuyển dễ dàng, phát triển mã thấp và khơng có thay đổi trong lược đồ

khi lưu trữ và quản lý. Điều gì xảy ra nếu có một cách để sử dụng những lợi ích của
JSON trong một mơi trường khơng có máy chủ? Cơ sở dữ liệu tài liệu đám mây giúp đơn
giản để phát triển các ứng dụng JSON với việc cung cấp tự động, mở rộng và sửa chữa
trong khi cung cấp sẵn sàng 99,995%. Xem phần giới thiệu về cơ sở dữ liệu JSON tự
động của Oracle.

IX.

DEMO Gửi dữ liệu JSON (DataJSON) Qua cổng COM ESP8266

Tra n g |6


Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

#include <ArduinoJson.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int NhietDo = 32;
int TB1 = 1245;
int TB2 = 3245;
int quat = 34567;
String dataJson = "";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

}
void DataJSON(String NhietDo, String TB1, String TB2, String quat)
{
dataJson = "{\"ND\":\"" + String{NhietDo} + "\", " +
"\"TB1\":\"" + String{TB1} + "\", " +
"\"TB2\":\"" + String{TB2} + "\", " +
"\"quat\":\"" + String{quat} + "\"}";
//su dung arduinoJson kiem tra chuoi gui di loi hay ko
StaticJsonDocument<200> JSON;
DeserializationError error = deserializeJson(JSON, dataJson);
if(error)
{
Serial.println("JSON bi loi");
Tra n g |7


Thiết kế ngoại vi và kĩ thuật ghép nối

Nhóm 12

return;//sai thi ko lam viec nua
}
else{
Serial.println("Data JSON: ");
serializeJsonPretty(JSON, Serial);
Serial.println();
JSON.clear();
}
}
void loop() {

// put your main code here, to run repeatedly:
DataJSON(String(NhietDo), String(TB1), String(TB2), String(quat));
delay(1000);
}

Tra n g |8



×