Xem Nhiều 2/2023 #️ Xử Lý Ngoại Lệ Trong Java (Bài 4) # Top 9 Trend | Karefresh.com

Xem Nhiều 2/2023 # Xử Lý Ngoại Lệ Trong Java (Bài 4) # Top 9 Trend

Cập nhật thông tin chi tiết về Xử Lý Ngoại Lệ Trong Java (Bài 4) mới nhất trên website Karefresh.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Xử lý ngoại lệ trong java có thể sử dụng khối try-catch, có thể sử dụng final trong khối try…catch hoặc sử dụng từ khoá throws. Sử dụng cách nào để xử lý ngoại lệ trong java còn tuỳ thuộc vào từng tình huống.

Xử lý ngoại lệ trong java – Tổng quan về ngoại lệ

Ngoại lệ là gì (Exception)

Có những lỗi chỉ khi chạy chúng mới xuất hiện và chương trình đang chạy lập tức ngừng lại và xuất hiện thông báo lỗi – đó chính là ngoại lệ (exception).

Ví dụ: Chương trình chia 2 số. Nếu ta cho mẫu số =0 thì phát sinh lỗi và đó được coi là 1 ngoại lệ.

Có nhiều ngoại lệ là lớp con của lớp Exception

RuntimeErrorException là lớp con của lớp Exception

RuntimeErrorException là các ngoại lệ chỉ xảy khi chạy chương trình.

Người lập trình có thể tự tạo các class kế thừa từ class Exception.

Ngoại lệ ‘unchecked’: Là các ngoại lệ không cần phải ‘catch’ khi viết mã

Ngoại lệ ‘checked’: Là các ngoại lệ phải được ‘catch’ khi viết mã

try { } catch (Tên_Ngoại_lệ Tên_Đối_Tượng) { }

Ví dụ không sử dụng try…catch

c = a/b; System.out.println("Sau phep chia !");(*)

Câu lệnh (*) sẽ không được thực hiện nếu mẫu số b=0, chương trình lập tức ngừng lại và xuất hiện thông báo lỗi của hệ thống

Ví dụ sử dụng khối try… catch để xử lý ngoại lệ

try { c = a/b; } catch(Exception e) { System.out.println("Có lỗi "+e); } System.out.println("Sau phép chia !"); (*)

Câu lệnh (*) sẽ luôn được thực hiện dù mẫu số b bằng 0 hay b khác 0.

Dùng try có nhiều catch

Trong một đoạn code có thể có nhiều ngoại lệ xảy ra nên ta sẽ dùng nhiều catch để xử lý các ngoại lệ đó.

Các lệnh catch thường được viết theo thứ tự xuất hiện của ngoại lệ.

Chú ý: Tất cả các ngoại lệ sẽ là lớp con của class Exception nên catch cuối cùng sẽ là Exception.

Ví dụ 1: Ngoại lệ xảy ra khi chia cho số 0 và sai chỉ số mảng

public class SampleException1 { public static void main (String args[]) { try { int b = 0; int a = 5 / b; int arr[] = {1, 2}; arr[3] = 10; System.out.println("a = " + a); } catch (ArithmeticException ae) { System.out.println("Phep chia cho 0: " + ae); } catch (Exception e) { System.out.println("Co loi: " + e); } } }

Nếu xuất hiện ngoại lệ phép chia cho 0 thì lệnh (1) sẽ xử lý, còn các ngoại lệ khác sẽ được xử lý bởi lệnh (2). Nếu đặt (2) đổi chỗ cho (1) thì (2) sẽ xử lý luôn ngoại lệ chia cho 0 vì như thế không cần (1) nữa. Vì thế không thể thay đổi vị trí giữa lệnh (1) và lệnh (2).

Ví dụ 2: Khối try…catch lồng nhau

public class SampleException2 { public static void main (String args[]) { try { int a = 2; int b = 42 / a; System.out.println("Ket qua cua phep chia la " + b); try { if(a == 1) { a = a / (a - a); } if(a == 2) { int c[] = {10}; c[5] = 17; } } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Vuot qua chi so mang"); } } catch (ArithmeticException ae) { System.out.println("Phep chia cho 0"); } } }

Lưu ý sử dụng khối try… catch để xử lý ngoại lệ

Trong khối finally sẽ chứa một khối mã sẽ thực hiện sau khối try/catch. Khối finally sẽ được thực hiện dù ngoại lệ có xuất hiện hay không. Tuy nhiên, mỗi try sẽ yêu cầu có ít nhất 1 catch hoặc 1 finally.

import java.io.FileWriter; import java.io.IOException; /** * * @author giasutinhoc.vn */ public class SampleException3 { public static void main(String args[]) { FileWriter fw = null; try { fw = new FileWriter("data.txt"); fw.write("Xu ly ngoai le trong java"); } catch (IOException ie) { System.out.println("Loi ghi file: " + ie); } finally { try { if (fw != null) { fw.close(); } } catch (IOException ioe) { System.out.println("Loi dong: " + ioe); } } } }

Xử lý ngoại lệ trong java – Sử dụng từ khóa throws

Từ khóa throws được sử dụng trong phương thức dùng để đề xuất các ngoại lệ có thể xảy ra trong phương thức đó. Có những phương thức sử dụng một số lệnh mà các lệnh đó có thể xảy ra ngoại lệ ‘checked’ nên chúng ta bắt buộc phải xử lý ngoại lệ đó.

Ví dụ khi xử lý các lệnh thao tác với file, phải xử lý ngoại lệ ‘checked’ FileNotFoundException. Tất cả các ngoại lệ được khai báo bởi throws đều phải được xử lý, nếu không có đủ sẽ bị thông báo lỗi.

Ví dụ: Xử lý ngoại lệ khi ghi file

public class SampleException4 { public void writeFile() throws IOException { FileWriter fw = new FileWriter("data.txt"); fw.write("Xu ly ngoai le trong java"); fw.close(); } public static void main(String args[]) { try { SampleException5 se5 = new SampleException5(); se5.writeFile(); } catch (IOException ioe) { System.out.println("Co loi ghi file: "+ ioe); } } }

Xử lý ngoại lệ trong java – Tự tạo exception 

Chúng ta có thể tự viết class xử lý ngoại lệ của riêng mình bằng cách kế thừa class Exception của Java

Cú pháp:

public class Tên_Exception extends Exception { @override public String toString() { Viết xử lý } }

Ví dụ: Tạo MyException.java

public class MyException extends Exception { private int ex; public MyException(int num) { ex = num; } @override public String toString() { return "My exception " + ex; } }

Ví dụ: Sử dụng MyException

public class SampleException5 { static void tinhToan(int a) throws MyException { throw new MyException(a); } } public static void main(String args[]) { try { tinhToan(2); tinhToan(20); } catch (MyException me) { System.out.println("Loi: " + me); } } }

Xử lý ngoại lệ trong java – Thực hành

Tạo package tên exception và tạo class tên SinhVien có các thuộc tính như mã sinh viên, họ tên, điểm, xếp loại

Tiêu chí xếp loại dựa vào điểm

Một số yêu cầu khác

Viết các setter, getter, constructor, toString.

Nhập dữ liệu cho sinh viên từ bàn phím. Viết code xử lý nhập dữ liệu hợp lệ. Nếu nhập sai kiểu dữ liệu thì thông báo lỗi và yêu cầu nhập lại. Ví dụ nhập điểm là 10a thì chương trình sẽ hiển thị thông báo “Bạn phải nhập dữ liệu là kiểu số”

In thông tin sinh viên ra màn hình.

Bài 30: Hướng Dẫn Xử Lý Ngoại Lệ Trong Java

Khối lệnh trong java được sử dụng để chứa một đoạn code có thế xảy ra một ngoại lệ. Nó phải được khai báo trong phương thức. Sau một khối lệnh try bạn phải khai báo khối lệnh catch hoặc finally hoặc cả hai. Cú pháp:

try{ try{

catch: Khối catch trong java được sử dụng để xử lý các Exception. Nó phải được sử dụng sau khối try.

finally: Khối lệnh finally trong java được sử dụng để thực thi các lệnh quan trọng như đóng kết nối, đóng stream,…Nó luôn được thực thi cho dù có ngoại lệ xảy ra hay không hoặc gặp lệnh return trong khối try.

Nếu bạn phải thực hiện các tác vụ khác nhau mà ở đó có thể xảy ra các ngoại lệ khác nhau, hãy sử dụng đa khối lệnh catch trong java. Ví dụ:

public class TestMultiCatchBlock{ public static void main(String args[]){ try{ int a[]=new int[5]; a[5]=30/0; } catch(ArithmeticException e){System.out.println("Task1 duoc hoan thanh");} catch(ArrayIndexOutOfBoundsException e){System.out.println("Task2 duoc hoan thanh");} catch(Exception e){System.out.println("Task chung duoc hoan thanh");} System.out.println("Phan code con lai..."); } }

Khi sử dụng đa khối lệnh catch, chúng ta cần tuân thủ các nguyên tắc sau:

Vào một thời điểm chỉ xảy ra một ngoại lệ và tại một thời điểm chỉ có một khối catch được thực thi.

Tất cả các khối catch phải được sắp xếp từ cụ thể nhất đến chung nhất, tức là phải khai báo khối lệnh catch để xử lý lỗi ArithmeticException trước khi khai báo catch để xử lý lỗi Exception.

Không chỉ vậy, đôi khi một tình huống có thể phát sinh khi một phần của một khối lệnh có thể xảy ra một lỗi và toàn bộ khối lệnh chính nó có thể xảy ra một lỗi khác. Do đó, trong những trường hợp như vậy, trình xử lý ngoại lệ try cũng phải được lồng nhau. Ví dụ:

public class TestException { public static void main(String args[]) { try { try { System.out.println("Thuc hien phep chia"); int b = 39 / 0; } catch (ArithmeticException e) { System.out.println(e); } try { int a[] = new int[5]; a[5] = 4; } catch (ArrayIndexOutOfBoundsException e) { System.out.println(e); } System.out.println("khoi lenh khac"); } catch (Exception e) { System.out.println("xy ly ngoai le"); } System.out.println("tiep tuc chuong trinh.."); } }

Từ khoá throw trong java được sử dụng để ném ra một ngoại lệ cụ thể. Chúng ta có thể ném một trong hai ngoại lệ checked hoặc unchecked trong java bằng từ khóa throw. Từ khóa throw chủ yếu được sử dụng để ném ngoại lệ tùy chỉnh (ngoại lệ do người dùng tự định nghĩa). Cú pháp từ khóa throw:

Ví dụ: Trong ví dụ này, chúng ta đã tạo phương thức validate mà nhận giá trị nguyên như là một tham số. Nếu tuoi là nhỏ hơn 18, chúng ta ném ArithmeticException, nếu không chúng ta sẽ in một thông báo là: Chao mung ban den bo phieu.

public class TestThrow1 { static void validate(int age) { if (age &amplt; 18) throw new ArithmeticException("not valid"); else System.out.println("welcome"); } public static void main(String args[]) { validate(13); System.out.println("rest of the code..."); } } Exception in thread "main" java.lang.ArithmeticException: not valid

Từ khóa throws trong java được sử dụng để khai báo một ngoại lệ. Nó thể hiện thông tin cho lập trình viên rằng có thể xảy ra một ngoại lệ, vì vậy nó là tốt hơn cho các lập trình viên để cung cấp các mã xử lý ngoại lệ để duy trì luồng bình thường của chương trình. Exception Handling chủ yếu được sử dụng để xử lý ngoại lệ checked. Nếu xảy ra bất kỳ ngoại lệ unchecked như NullPointerException, đó là lỗi của lập trình viên mà anh ta không thực hiện kiểm tra trước khi code được sử dụng. Cú pháp:

kieu_tra_ve ten_phuong_thuc() throws ten_lop_exception{

Từ khóa này chỉ chỉ dành cho Checked Exception, bởi vì:

Unchecked Exception: dưới sự điều khiển của bạn bằng việc kiểm tra và sửa lỗi code.

Error: Vượt quá tầm kiểm soát của bạn, ví dụ: bạn không thể làm điều gì nếu xuất hiện VirtualMachineError hoặc StackOverflowErrror.

Từ khóa throw được sử dụng để ném tường minh một exception

Từ khóa throws được sử dụng để khai báo một exception

Checked Exception không thể được lan truyền chỉ bởi sử dụng throw

Checked Exception không thể được lan truyền với throws

Throw được theo sau bởi một instance

Throws được theo sau bởi một lớp

Throw được sử dụng bên trong một phương thức

Throws được sử dụng với khai báo phương thức

Bạn có thể ném nhiều exception

Bạn có thể khai báo nhiều exception, ví dụ public void phuong_thuc()throws IOException,SQLException

Custom Exception là ngoại lệ do bạn tự định nghĩa hay bạn tự tạo riêng cho mình. Custom Exception trong Java được sử dụng để tùy biến ngoại lệ theo yêu cầu của người dùng. Bởi sự giúp đỡ của loại ngoại lệ này, bạn có thể có riêng kiểu và thông điệp ngoại lệ cho mình. Ví dụ:

class InvalidAgeException extends Exception{ InvalidAgeException(String s){ super(s); } } class TestCustomException1{ static void validate(int age)throws InvalidAgeException{ if(age&amplt;18) throw new InvalidAgeException("Khong hop le"); else System.out.println("Chao mung ban toi bo phien"); } public static void main(String args[]){ try{ validate(13); }catch(Exception m){System.out.println("Exception xuat hien: "+m);} System.out.println("Phan code con lai..."); } }

Kết quả thu được sau khi chạy chương trình là:

Exception xuat hien: InvalidAgeException:Khong hop le Phan code con lai...

Như vậy, qua bài viết này, chúng ta đã cùng nhau tìm hiểu cách xử lý ngoại lệ trong Java bằng các cách khau nhau. Cảm ơn các bạn đã đọc.

Hướng Dẫn Xử Lý Json Trong Javascript

1- JSON là gì?

Như bạn biết dữ liệu luôn được truyền từ máy tính nọ tới máy tính kia thông qua môi trường Internet, và nó được đóng gói theo một định dạng nào đó trước khi gửi đi. Nơi nhận phải hiểu được định dạng này để phân tích lấy ra được dữ liệu gốc.

XML là một định dạng khá phổ biến để lưu trữ vận chuyển dữ liệu.

JSON là viết tắt của JavaScript Object Notation, nó cũng là một định dạng để lưu trữ và vận chuyển dữ liệu. Định dạng JSON có nguồn gốc từ cú pháp đối tượng của Javascript, vì vậy nó thừa kế sự đơn giản, và hoàn toàn dựa trên văn bản.

Và một dữ liệu được lưu trữ trong định dạng JSON:

JSON là một định dạng để trao đổi dữ liệu gọn nhẹ (Lightweight).

Dữ liệu JSON tự mô tả chính nó, vì vậy nó dễ hiểu cho tất cả mọi người.

JSON là một ngôn ngữ độc lập, và là một văn bản. Bạn có thể sử dụng một ngôn ngữ bất kỳ để đọc hoặc tạo ra dữ liệu JSON. Hầu hết các ngôn ngữ lập trình đều có thư viện đọc và ghi dữ liệu JSON.

{"firstName":"John", "lastName":"Doe"} [ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"} ]

JSON là thuần định dạng dữ liệu – nó chỉ chứa các thuộc tính (properties), không chứa các phương thức.

JSON đòi hỏi dấu nháy kép (double quotes) được sử dụng cho các chuỗi, và tên thuộc tính. Dấu nháy đơn (Single quotes) là không hợp lệ.

Thậm chí chỉ một dấu phẩy hoặc dấu hai chấm (colon) đặt sai vị trí có thể làm cho tập tin JSON bị sai, và không hoạt động. Vì vậy bạn nên cẩn thận để xác thực bất cứ dữ liệu nào bạn muốn sử dụng.

2- JSON.parse(..)

Bằng cách sử dụng phương thức JSON.parse(text) giúp bạn phân tích một dữ liệu JSON và chuyển nó thành một đối tượng.

3- JSON.stringify(..)

Bằng cách sử dụng phương thức JSON.stringify(obj) giúp bạn chuyển đổi một đối tượng Javascript thành một văn bản có định dạng JSON.

JSON.stringify(obj)

Phương thức JSON.stringify(obj) được sử dụng để chuyển đổi obj thành một String. Nếu đối tượng obj có phương thức toJSON() phương thức này sẽ được gọi để trả về String, ngược lại nó sẽ chuyển đổi theo quy tắc mặc định:

Number, Boolean, String sẽ được chuyển đổi thành giá trị nguyên thủy (primitive).

Infinity, NaN sẽ được chuyển đổi thành null.

Nếu obj là undefined, Function, Symbol, nó sẽ bị chuyển đổi thành undefined.

undefined, Function, Symbol nếu xuất hiện trong đối tượng nó sẽ bị bỏ qua.

undefined, Function, Symbol nếu xuất hiện mảng nó sẽ bị chuyển đổi thành null.

Tất cả các thuộc tính (property) có khóa là Symbol sẽ bị bỏ qua.

Đối tượng Date có phương thức toJSON() trả về một String, giống với date.toISOString(), vì vậy nó được đối xử như một string.

JSON.stringify(obj [, replacer[, space]])

Phương thức JSON.stringify(..) thực sự có 3 tham số, trong đó thứ 2 và thứ 3 là không bắt buộc.

Một đối tượng sẽ được chuyển đổi thành chuỗi JSON.

replacer có thể là một hàm để điều chỉnh hành vi trong quá trình chuyển đổi đối tượng thành chuỗi JSON.

replacer có thể là một mảng của các String, nó giúp chỉ định một danh sách trắng (whitelist) các thuộc tính (property) sẽ xuất hiện trong chuỗi JSON.

space có thể là một chuỗi (Nếu dài hơn 10 ký tự nó sẽ bị cắt cụt thành 10 ký tự). Dùng để trèn vào JSON giúp JSON đẹp hơn, dễ nhìn hơn.

space có thể là một số nhỏ hơn hoặc bằng 10 (Nếu lớn hơn 10 nó sẽ được coi là 10). Dùng để chỉ định một chuỗi bao gồm ‘space’ ký tự dấu cách (space), chuỗi này sẽ được trèn vào JSON giúp JSON đẹp hơn, dễ nhìn hơn.

Các ví dụ:

Ví dụ với tham số replacer là một mảng các String:

Ví dụ với tham số replacer là một hàm:

Ví dụ với tham số replacer là một hàm và tham số obj là một mảng.

Hướng Dẫn Xử Lý Json Trong Android

JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu dữ liệu (data exchange format). Nó lưu trữ các dữ liệu theo cặp khóa và giá trị. So với XML thì JSON đơn giản về dễ đọc hơn.

Hãy xem một ví dụ đơn giản của JSON:

{ "name" : "Tran", "address" : "Hai Duong, Vietnam", "phones" : [0121111111, 012222222] }

Các cặp key-value có thể lồng nhau:

{ "id": 111 , "name":"Microsoft", "websites": [ "http://microsoft.com", "http://msn.com", "http://hotmail.com" ], "address":{ "street":"1 Microsoft Way", "city":"Redmond" } }

Trong Java có rất nhiều các thư viện mã nguồn mở giúp bạn thao tác với tài liệu JSON, chẳng hạn như:

Android hỗ trợ sẵn thư viện để làm việc với JSON, bạn không cần phải khai báo bất cứ một thư viện nào khác. Trong tài liệu hướng dẫn này tôi sẽ hướng dẫn bạn làm việc với JSON sử dụng JSON API có sẵn trong hệ điều hành của Android.

Tôi tạo nhanh một project có tên JSONTutorial để làm việc với JSON thông qua các ví dụ.

Name: JSONTutorial

Package name: org.o7planning.jsontutorial

Tôi tạo thêm một vài file json trong thư mục ‘raw’, các file này sẽ tham gia vào một các ví dụ trong tài liệu này.

Các nguồn cung cấp dữ liệu JSON có thể từ file hoặc URL,… Ở cuối tài liệu bạn có thể xem ví dụ lấy dữ liệu JSON từ URL, phân tích và hiển thị trên một ứng dụng Android.

{ "id": 111 , "name":"Microsoft", "websites": [ "http://microsoft.com", "http://msn.com", "http://hotmail.com" ], "address":{ "street":"1 Microsoft Way", "city":"Redmond" } }

Thiết kế activity_main.xml:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" <EditText android:id="@+id/editText" android:layout_width="0dp" android:layout_height="220dp" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:layout_marginEnd="16dp" android:layout_marginRight="16dp" android:ems="10" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="39dp" android:text="Running the Example" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"

Một số class tham gia vào các ví dụ:

package org.o7planning.jsontutorial.beans; public class Address { private String street; private String city; public Address() { } public Address(String street, String city) { this.street = street; chúng tôi = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getCity() { return city; } public void setCity(String city) { chúng tôi = city; } @Override public String toString() { return street + ", " + city; } } package org.o7planning.jsontutorial.beans; public class Company { private int id; private String name; private String[] websites; private Address address; public int getId() { return id; } public void setId(int id) { chúng tôi = id; } public String getName() { return name; } public void setName(String name) { chúng tôi = name; } public String[] getWebsites() { return websites; } public void setWebsites(String[] websites) { this.websites = websites; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("n id:" + this.id); sb.append("n name:" + this.name); if (this.websites != null) { sb.append("n website: "); for (String website : this.websites) { sb.append(website + ", "); } } if (this.address != null) { sb.append("n address:" + this.address.toString()); } return sb.toString(); } }

Trong ví dụ này chúng ta sẽ đọc file dữ liệu JSON và chuyển nó thành đối tượng Java.

package org.o7planning.jsontutorial.json; import android.content.Context; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.o7planning.jsontutorial.R; import org.o7planning.jsontutorial.beans.Address; import org.o7planning.jsontutorial.beans.Company; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class ReadJSONExample { public static Company readCompanyJSONFile(Context context) throws IOException,JSONException { String jsonText = readText(context, R.raw.company); JSONObject jsonRoot = new JSONObject(jsonText); int id= jsonRoot.getInt("id"); String name = jsonRoot.getString("name"); JSONArray jsonArray = jsonRoot.getJSONArray("websites"); String[] websites = new String[jsonArray.length()]; for(int i=0;i < jsonArray.length();i++) { websites[i] = jsonArray.getString(i); } JSONObject jsonAddress = jsonRoot.getJSONObject("address"); String street = jsonAddress.getString("street"); String city = jsonAddress.getString("city"); Address address= new Address(street, city); Company company = new Company(); company.setId(id); company.setName(name); company.setAddress(address); company.setWebsites(websites); return company; } private static String readText(Context context, int resId) throws IOException { InputStream is = context.getResources().openRawResource(resId); BufferedReader br= new BufferedReader(new InputStreamReader(is)); StringBuilder sb= new StringBuilder(); String s= null; while(( s = br.readLine())!=null) { sb.append(s); sb.append("n"); } return sb.toString(); } } package org.o7planning.jsontutorial; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import org.o7planning.jsontutorial.beans.Company; import org.o7planning.jsontutorial.json.ReadJSONExample; public class MainActivity extends AppCompatActivity { private EditText outputText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.outputText = (EditText)this.findViewById(R.id.editText); this.button = (Button) this.findViewById(R.id.button); @Override runExample(view); } }); } public void runExample(View view) { try { Company company = ReadJSONExample.readCompanyJSONFile(this); outputText.setText(company.toString()); } catch(Exception e) { outputText.setText(e.getMessage()); e.printStackTrace(); } } }

Ví dụ sau chuyển một đối tượng Java thành một dữ liệu JSON.

package org.o7planning.jsontutorial.json; import android.util.JsonWriter; import org.o7planning.jsontutorial.beans.Address; import org.o7planning.jsontutorial.beans.Company; import java.io.IOException; import java.io.Writer; public class JsonWriterExample { public static void writeJsonStream(Writer output, Company company ) throws IOException { JsonWriter jsonWriter = new JsonWriter(output); jsonWriter.beginObject();// begin root jsonWriter.name("id").value(company.getId()); jsonWriter.name("name").value(company.getName()); String[] websites= company.getWebsites(); jsonWriter.name("websites").beginArray(); for(String website: websites) { jsonWriter.value(website); } jsonWriter.endArray();// end websites jsonWriter.name("address").beginObject(); jsonWriter.name("street").value(company.getAddress().getStreet()); jsonWriter.name("city").value(company.getAddress().getCity()); jsonWriter.endObject();// end address jsonWriter.endObject(); } public static Company createCompany() { Company company = new Company(); company.setId(123); company.setName("Apple"); String[] websites = { "http://apple.com", "https://jobs.apple.com" }; company.setWebsites(websites); Address address = new Address(); address.setCity("Cupertino"); address.setStreet("1 Infinite Loop"); company.setAddress(address); return company; } } package org.o7planning.jsontutorial; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import org.o7planning.jsontutorial.beans.Company; import org.o7planning.jsontutorial.json.JsonWriterExample; import java.io.StringWriter; public class MainActivity extends AppCompatActivity { private EditText outputText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.outputText = (EditText)this.findViewById(R.id.editText); this.button = (Button) this.findViewById(R.id.button); @Override runExample(view); } }); } public void runExample(View view) { try { StringWriter output = new StringWriter(); Company company = JsonWriterExample.createCompany(); JsonWriterExample.writeJsonStream(output, company); String jsonText = output.toString(); outputText.setText(jsonText); } catch(Exception e) { outputText.setText(e.getMessage()); e.printStackTrace(); } } }

Để đọc JSON từ một URL bạn cần phải sử dụng các kỹ thuật của Android Networking, download tập tin JSON sau đó phân tích (parse) nó.

Bạn đang xem bài viết Xử Lý Ngoại Lệ Trong Java (Bài 4) trên website Karefresh.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!