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.kienthuclaptrinh.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