Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách đọc/phân tích mảng JSON (JSON array) bằng Java

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

  1. Khởi tạo JSONParser.
    JSONParser jsonParser = new JSONParser();
  2. Phân tích nội dung file bằng parse().
    JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("E:/players_data.json"));
  3. Lấy giá trị theo key bằng get().
    String value = (String) jsonObject.get("key_name");
  4. Lấy mảng JSON vào JSONArray.
    JSONArray jsonArray = (JSONArray) jsonObject.get("contact");
  5. 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