Mảng JSON là tập hợp giá trị có thứ tự trong dấu ngoặc vuông [...], các giá trị cách nhau bằng dấu phẩy.
Mảng JSON mẫu
{
"books": [ "Java", "JavaFX", "Hbase", "Cassandra", "WebGL", "JOGL" ]
}
Thư viện json-simple xử lý đối tượng JSON. Cho phép đọc/ghi tài liệu JSON bằng Java.
Maven dependency json-simple
<dependencies>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
Các bước đọc mảng JSON
- Khởi tạo JSONParser.
JSONParser jsonParser = new JSONParser();
- Phân tích nội dung file bằng parse().
JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("E:/players_data.json")); - Lấy giá trị theo key bằng get().
String value = (String) jsonObject.get("key_name"); - Lấy mảng JSON vào JSONArray.
JSONArray jsonArray = (JSONArray) jsonObject.get("contact"); - Duyệt mảng bằng iterator().
Iterator<String> iterator = jsonArray.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); }
Ví dụ hoàn chỉnh
File sample.json:
{
"ID": "1",
"First_Name": "Krishna Kasyap",
"Last_Name": "Bhagavatula",
"Date_Of_Birth": "1989-09-26",
"Place_Of_Birth": "Vishakhapatnam",
"Salary": "25000",
"contact": [
"e-mail: krishna_kasyap@gmail.com",
"phone: 9848022338",
"city: Hyderabad",
"Area: Madapur",
"State: Telangana"
]
}
Chương trình đọc:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class ReadingArrayFromJSON {
public static void main(String args[]) {
JSONParser jsonParser = new JSONParser();
try {
JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("E:/test.json"));
System.out.println("Contents of the JSON are: ");
System.out.println("ID: " + jsonObject.get("ID"));
System.out.println("First name: " + jsonObject.get("First_Name"));
System.out.println("Last name: " + jsonObject.get("Last_Name"));
System.out.println("Date of birth: " + jsonObject.get("Date_Of_Birth"));
System.out.println("Place of birth: " + jsonObject.get("Place_Of_Birth"));
System.out.println("Salary: " + jsonObject.get("Salary"));
JSONArray jsonArray = (JSONArray) jsonObject.get("contact");
System.out.println("");
System.out.println("Contact details: ");
Iterator<String> iterator = jsonArray.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (FileNotFoundException | IOException | ParseException e) {
e.printStackTrace();
}
}
}
Kết quả đầu ra
Contents of the JSON are: ID: 1 First name: Krishna Kasyap Last name: Bhagavatula Date of birth: 1989-09-26 Place of birth: Vishakhapatnam Salary: 25000 Contact details: e-mail: krishna_kasyap@gmail.com phone: 9848022338 city: Hyderabad Area: Madapur State: Telangana