27/09/2018, 14:07

JSON.simple – phân tích cú pháp JSON trong Java

Collection trong java Một ví dụ tiếp theo của bài Ví dụ JSON với Java – json.simple. Ví dụ: phân tích cú pháp JSON trong Java, với chuỗi JSON được đọc từ một file: File employee.json: { "firstName":"Vinh", "lastName":"Phan&qu ...

Collection trong java

Một ví dụ tiếp theo của bài Ví dụ JSON với Java – json.simple.

Ví dụ: phân tích cú pháp JSON trong Java, với chuỗi JSON được đọc từ một file:

File employee.json:

{
    "firstName":"Vinh",
    "lastName":"Phan",
    "address":{
        "streetAddress":"11 Tu Lap",
        "district":"Me Linh",
        "city":"Ha Noi",
        "state":"",
        "postalCode":"100000"
    },
    "age":25,
    "phoneNumbers":[
        {
            "type":"home",
            "number":"096677028"
        },
        {
            "type":"fax",
            "number":"0435508028"
        }
    ],
    "sex":"Male",
    "salary":1200.0
}

File JSONSimpleExample.java

package vn.viettuts.json;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JSONSimpleExample {
    public static void main(String[] args) {
        Object obj;
        try {
            obj = new JSONParser().parse(new FileReader("D:\json\employee.json"));
            JSONObject jsonObject = (JSONObject) obj;

            // đọc firstName và lastName
            String firstName = (String) jsonObject.get("firstName");
            String lastName = (String) jsonObject.get("lastName");
            System.out.println("firstName: " + firstName);
            System.out.println("lastName: " + lastName);

            // đọc age
            long age = (Long) jsonObject.get("age");
            System.out.println("age:" + age);

            // đọc address
            Map address = ((Map) jsonObject.get("address"));
            // đọc address Map
            Iterator<Map.Entry> itr1 = address.entrySet().iterator();
            while (itr1.hasNext()) {
                Map.Entry pair = itr1.next();
                System.out.println(pair.getKey() + " : " + pair.getValue());
            }

            // đọc phoneNumbers
            JSONArray jaPhoneNumbers = (JSONArray) jsonObject.get("phoneNumbers");

            // đọc mảng phoneNumbers
            Iterator itr2 = jaPhoneNumbers.iterator();
            while (itr2.hasNext()) {
                itr1 = ((Map) itr2.next()).entrySet().iterator();
                while (itr1.hasNext()) {
                    Map.Entry pair = itr1.next();
                    System.out.println(pair.getKey() + " : " + pair.getValue());
                }
            }

            String sex = (String) jsonObject.get("sex");
            System.out.println("sex: " + sex);

            Double salary = (Double) jsonObject.get("salary");
            System.out.println("salary: " + salary);
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

Kết quả:

firstName: Vinh
lastName: Phan
age:25
streetAddress : 11 Tu Lap
city : Ha Noi
district : Me Linh
postalCode : 100000
state : 
number : 096677028
type : home
number : 0435508028
type : fax
sex:Male
salary1200.0
Collection trong java
0