Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh
TRUNG TÂM TIN HỌC
Bài 4: Tương tác giữa Web Service
với ứng dụng trên thiết bị di động
Ngành Mạng & Thiết bị di động
www.t3h.vn
2015
Nội dung
1. Giới thiệu các dạng dữ liệu tương tác giữa Web
Service với ứng dụng trên TBDĐ
2. Tổng quan về JSON
3. Tạo JSON bằng .Net Web Service
4. Tương tác giữa Web Service với ứng dụng trên
TBDĐ
Xây dựng và triển khai Web Service cho ứng dụng di động
2
1. Giới thiệu các dạng dữ liệu tương tác
giữa Web Service với ứng dụng trên
TBDĐ
XML - eXtensible Markup Language
•
Là ngơn ngữ đánh dấu với mục đích chung do W3C đề
nghị.
•
Là mợt dạng ch̉n cho phép lưu các thông tin hướng cấu
trúc, được tổ chức dưới dạng thẻ (tag) tương ứng.
•
Các thẻ (tag) của XML thường không được định nghĩa trước
mà chúng được tạo ra theo quy ước của người, (hoặc
Chương trình) tạo ra XML theo những quy ước của chính
người tạo.
•
Giúp đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống
khác nhau, đặc biệt là các hệ thống được kết nối
với Internet.
Xây dựng và triển khai Web Service cho ứng dụng di động
3
1. Giới thiệu các dạng dữ liệu tương tác
giữa Web Service với ứng dụng trên
TBDĐ
XML - eXtensible Markup Language
Ví dụ:
<cacthanhphan>
<the1>
…
</the1>
</cacthanhphan>
Xây dựng và triển khai Web Service cho ứng dụng di động
4
1. Giới thiệu các dạng dữ liệu tương tác
giữa Web Service với ứng dụng trên
TBDĐ
JSON - JavaScript Object Notation
Định nghĩa dữ liệu theo ngôn ngữ JavaScript, tiêu chuẩn
ECMA-262 năm 1999.
Là một định dạng văn bản đơn giản với các trường dữ liệu
được lồng vào nhau.
Xây dựng và triển khai Web Service cho ứng dụng di động
5
Nội dung
1. Giới thiệu các dạng dữ liệu tương tác giữa Web
Service với ứng dụng trên TBDĐ
2. Tổng quan về JSON
•
•
•
•
•
JSON là gì?
Tạo sao nên sử dụng JSON?
Cú pháp JSON
Cấu trúc xây dựng JSON
Các kiểu dữ liệu JSON
3. Tạo JSON bằng .Net Web Service
4. Tương tác giữa Web Service với ứng dụng trên
TBDĐ
Xây dựng và triển khai Web Service cho ứng dụng di động
6
2. 1 JSON là gì?
JSON - JavaScript Object Notation
•
Định nghĩa dữ liệu theo ngơn ngữ JavaScript, tiêu
ch̉n ECMA-262 năm 1999.
•
Là một định dạng văn bản đơn giản với các trường
dữ liệu được lờng vào nhau.
•
Dùng để trao đởi dữ liệu giữa các thành phần của
mợt hệ thống tương thích với hầu hết các ngôn
ngữ C, C++, C#, Java, JavaScript, Perl, Python...
Xây dựng và triển khai Web Service cho ứng dụng di động
7
2. 2 Tại sao nên sử dụng JSON?
•
•
Có thể đọc hiểu và dễ dàng tiếp cận (human-readability).
Dữ liệu truyền tải ngắn gọn so với những định dạng dữ liệu
khác như: XML, HTML, … → Tiết kiệm dung lượng hơn XML,
HTML,...
•
Dễ dàng chuyển đổi (parse) dữ liệu từ dạng chuỗi (nhận từ
server) sang dữ liệu có thể sử dụng được (thành Object,
Number, Array).
•
•
Dễ truy cập nợi dung.
Với những ứng dụng AJAX lấy và xử lý dữ liệu từ 1 web
service nào đó khác domain. Nếu nợi dung trả về có dạng
JSON thì javascript từ trang web của chúng ta có thể trực
tiếp truy cập (dùng lệnh eval).
•
Có cách phân tích
xử lý đơn giản, chỉ qua 1 bước (chuyển
Xây dựng và triển khai Web Service cho ứng dụng di động
8
2. 3 Cú pháp JSON?
Cú pháp JSON là một tập hợp con của cú pháp đối tượng
JavaScript:
•
•
•
•
Dữ liệu là các cặp tên/giá trị (name/values)
Dữ liệu được phân cách bằng dấu phẩy
Đối tượng nằm trong cặp ngoặc nhọn ‘{}’
Dấu ngoặc vuông giữ mảng ‘[]’
Để kiểm tra cú pháp chuỗi JSON, chúng ta có thể truy
cập vào trang để kiểm tra.
Xây dựng và triển khai Web Service cho ứng dụng di động
9
2. 3 Cú pháp JSON?
Cặp tên và giá trị (name & values) của JSON
• Dữ liệu JSON được viết trong cặp Tên/Giá trị.
• Mợt cặp Tên/Giá trị chứa tên 1 trường (trong dấu nháy
đôi “”), theo sau là dấu phẩy, cuối cùng là giá trị.
Ví dụ:
"ten" : "An"
Xây dựng và triển khai Web Service cho ứng dụng di động
10
2. 3 Cú pháp JSON?
Tập tin JSON (JSON Files)
•
•
Kiểu tập tin (file) của JSON là ".json"
Kiểu MIME của JSON là "application/json"
Xây dựng và triển khai Web Service cho ứng dụng di động
11
2. 3 Cấu trúc xây dựng JSON
Được xây dựng trên 2 cấu trúc chính:
•
Tập hợp của các cặp tên và giá trị name-value
Các kiểu thể hiện:
1 đối tượng (object), sự ghi (record), cấu trúc (struct), từ
điển (dictionary), bảng băm (hash table), danh sách
khố
•
(keyed list), hay mảng liên hợp.
Tập hợp các giá trị đã được sắp xếp
Các kiểu thể hiện:
1 mảng, véc tơ, tập hợp hay là 1 dãy tuần tự
(sequence).
Xây dựng và triển khai Web Service cho ứng dụng di động
12
2. 4 Các kiểu dữ liệu JSON
JSON có 5 kiểu dữ liệu chính:
• Kiểu sớ (Number)
• Kiểu ch̃i (String)
• Kiểu mảng (Array)
• Kiểu đới tượng (Object)
• Giá trị (Value)
Xây dựng và triển khai Web Service cho ứng dụng di động
13
2. 4 Các kiểu dữ liệu JSON
Kiểu đới tượng (Object)
•
•
1 đối tượng là 1 hổn độn của các cặp tên và giá trị.
1 đối tượng bắt đầu bởi dấu ngoặc đơn trái { và kết
thúc với dấu ngoặc đơn phải }.
•
Từng tên được theo sao bởi dấu 2 chấm (:) và các
cặp tên/giá trị được tách ra bởi dấu phẩy (,).
•
1 đối tượng có thể chứa nhiều cặp tên/giá trị
(Name/Values)
Xây dựng và triển khai Web Service cho ứng dụng di động
14
2. 4 Các kiểu dữ liệu JSON
Kiểu đới tượng (Object)
Ví dụ:
{ “ten":“An" , “ho":“Nguyen" }
Xây dựng và triển khai Web Service cho ứng dụng di động
15
2. 4 Các kiểu dữ liệu JSON
Kiểu mảng (Array)
•
•
1 mảng là 1 tập hợp các giá trị đã được sắp xếp.
1 mảng bắt đầu bởi dấu mở ngoặc vuông [ và kết
thúc với dấu ngoặc vng phải ].
•
•
Các giá trị được cách nhau bởi dấu phẩy (,).
1 mảng có thể chứa nhiều đối tượng.
Xây dựng và triển khai Web Service cho ứng dụng di động
16
2. 4 Các kiểu dữ liệu JSON
Kiểu mảng (Array)
•
Ví dụ
{
"NhanVien":
[
{"tenNV":"An" , "hoNV":"Nguyễn" },
{"tenNV":"Bình" , "hoNV":"Trần" },
{"tenNV":"Châu" , "hoNV":"Lê" }
]
}
Xây dựng và triển khai Web Service cho ứng dụng di động
17
2. 4 Các kiểu dữ liệu JSON
Kiểu giá trị (Value)
•Giá trị JSON có thể là:
1 số (nguyên (integer) hay số thực (floating point))
1 chuỗi (nằm trong dấu nháy đôi "")
1 số luận lý (true hoặc false)
1 mảng (nằm trong dấu ngoặc vuông [])
1 đối tượng (nằm trong dấu ngoặc nhọn {})
Kiểu null
•Những cấu trúc này có thể đã được lờng vào nhau.
Xây dựng và triển khai Web Service cho ứng dụng di động
18
2. 4 Các kiểu dữ liệu JSON
Kiểu giá trị (Value)
Xây dựng và triển khai Web Service cho ứng dụng di động
19
2. 4 Các kiểu dữ liệu JSON
Kiểu ch̃i (String)
•1
chuỗi (string) là 1 tập hợp của các số hay mẫu tự
Unicode, được bao bọc trong các dấu trích dẫn kép (").
•Dùng dấu chéo (/) để thốt khỏi 1 chuỗi.
•1 ký tự đã được hiển thị như là 1 chuỗi ký tự đơn độc.
Xây dựng và triển khai Web Service cho ứng dụng di động
20
2. 4 Các kiểu dữ liệu JSON
Kiểu chuỗi (string)
Xây dựng và triển khai Web Service cho ứng dụng di động
21
2. 4 Các kiểu dữ liệu JSON
Kiểu số (Number)
Giống với kiểu số trong C và Java, trừ định dạng bát phân và
hex là không thể dùng.
Xây dựng và triển khai Web Service cho ứng dụng di động
22
2. 4 Các kiểu dữ liệu JSON
Ví dụ sử dụng các kiểu dữ liệu JSON
{
SVNganhCNTT:
[
{hoTen: “Nguyêễ
n Văn An”, tuoi: 21, nam: true, queQuan: “Đôồ
ng
Tháp”},
{hoTen: “Trâồ
n Văn Bình”, tuoi: 22, nam: true,queQuan:“HôồChí
Minh”},
{hoTen: “Lê Thị Châu”, tuoi: 23, nam: false, queQuan: “Vĩnh
Long” }
],
SVNganhCNSH:
[
{hoten: “Trâồ
n Văn Bông”, tuoi: 24, nam: true, queQuan: “Long
An”},
{hoten: “Nguyêễ
n Thị Hoa”, tuoi: 22, nam: false, queQuan: “Câồ
n
Thơ”},
Xây dựng và triển khai Web Service cho ứng dụng di động
23
2. 4 Các kiểu dữ liệu JSON
Phân tích ví dụ
- Tuoi (tuổi) kiểu dữ liệu là Number
- hoTen (họ tên) kiểu dữ liệu là String
- nam (giới tính) kiểu dữ liệu là Boolean
- SVNganhCNTT (sinh viên ngành CNTT), SVNganhCNSH (Sinh
viên ngành CNSH) kiểu dữ liệu làArray
- {hoTen: “Nguyễn Văn An”, tuoi: 21, nam: true, queQuan:
“Đồng Tháp”} là một kiểu Object
- hoTen : “Nguyễn Văn An” là một cặp giá trị của mợt Object,
hoTen là tên tḥc tính, “Ngũn Văn An” là giá trị của tḥc
tính đó
- SVNganhCNTT: [...] và SVNganhCNSH: [...] cũng được xem là
Xây dựng và triển khai Web Service cho ứng dụng di động
24
Nội dung
1. Giới thiệu các dạng dữ liệu tương tác giữa Web
Service với ứng dụng trên TBDĐ
2. Tổng quan về JSON
3. Chuyển đổi giữa kiểu dữ liệu JSON và đối
tượng .NET (Serializing - Deserializing JSON)
● Cấu hình Web API Service chỉ trả về JSON
● Chuyển đổi từ đối tượng .NET sang chuỗi JSON ( Tạo chuỗi
JSON)
● Chuyển đổi từ chuỗi JSON sang đối tượng .NET
4. Tương tác giữa Web Service với ứng dụng trên
TBDĐ
Xây dựng và triển khai Web Service cho ứng dụng di động
25