12 thg 3, 2012

Android WebServices : Connecting to webservice through GSON

Để làm việc được với Gson trước hết các bạn phải tải thư viện hỗ trợ .
Các bạn có thể download  Tại đây 
Và trong eclipse có 1 Plugin Text Editor hỗ trợ khả năng mở file .json và format element để chúng ta hiểu rõ cấu trúc của file json hơn.
Các bạn có thể download Tại đây  .
Bài viết này mình sẽ không giải thích về cấu trúc của 1 file json và tại sao chúng ta làm việc với JSON thay vì làm việc với XMLtruyền thống.
Để làm việc với JSON các bạn có thể dùng class hỗ trợ trong Android. Tìm hiểu thêm Tại đây 
Hoặc dùng 1 thư viện hỗ trợ GSON mà mình sẽ giới thiệu bây giờ.
Trước hết chúng ta sẽ xem qua file json được lưu tại services tại đây.
Sử dụng Plug in Json Editor open thì nó có dạng như hình dưới đây
Các bạn để ý các phần tử trong cấu trúc của 1 file JSON. nó rất quan trọng khi mình muốn thấy thông tin của nó ra.
Tiếp theo các bạn tạo 1 And Project trong eclipse <Hoặc import project mình đã code ở cuối bài viết này>
Nhớ add thêm thư viện gson-2.1.jar vào project.
Tạo 1 lớp trong project có tên : SearchResponse.java

Lớp này có  tác dụng để chúng ta thao tác với phần tử tương ứng của cấu trúc file json.

Tiếp theo là class Result.java có tác dụng là để xử lý các phần tử con của thẻ  "results".
Cuối cùng là class Activity của project. Tôi tạo ra 1 đối tượng Gson. và dùng đối tượng này gọi json và lấy về dữ liệu của file json được lưu trên webservice về. 
                        Gson gson = new Gson();
Reader reader = new InputStreamReader(inputStream);
SearchResponse response = gson.fromJson(reader, SearchResponse.class);
List<Result> results = response.results;

Và kết quả khi các bạn chạy project :



Link download project for eclipse : tại đây
Lưu ý : bạn nhớ thêm quyền truy cập INTERNET cho thiết bị Emulator.  bằng cách vào AndroidManifest.xml
chọn thẻ Permision -> User Permision -> INTERNET permision. 

Không có nhận xét nào:

Đăng nhận xét

Bản beta đầu tiên

Sau 6 tháng cả team cặm cụi làm việc điên cuồng, bản alpha cũng được giới thiệu ra toàn bộ công ty và được testing nội bộ công ty mà thôi. ...