JSON เป็นรูปแบบแลกเปลี่ยนข้อมูล เบา, ข้อความ, อิสระจากภาษา แสดงโครงสร้าง อ็อบเจกต์ และ อาร์เรย์ ใช้ JSONObject และ JSONArray จาก json.simple API โดย JSONObject ทำงานเหมือน java.util.Map ส่วน JSONArray เหมือน java.util.List
ตัวอย่าง: ถอดรหัส JSON แบบซ้อนกัน
import org.json.simple.*;
import org.json.simple.parser.*;
public class JSONDecodingTest {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
String str = "[ 0 , {\"1\" : { \"2\" : {\"3\" : {\"4\" : [5, { \"6\" : { \"7\" : 8 } } ] } } } ]";
try {
Object obj = parser.parse(str);
JSONArray array = (JSONArray) obj;
System.out.println("2nd Array element: ");
System.out.println(array.get(1));
System.out.println();
JSONObject object2 = (JSONObject) array.get(1);
System.out.println("Field \"1\"");
System.out.println(object2.get("1"));
// ทดสอบกรณีพิเศษ
str = "{}";
obj = parser.parse(str);
System.out.println(obj);
str = "[6,]";
obj = parser.parse(str);
System.out.println(obj);
str = "[6,,3]";
obj = parser.parse(str);
System.out.println(obj);
} catch (ParseException parseExp) {
System.out.println("Exception position: " + parseExp.getPosition());
System.out.println(parseExp);
}
}
}
ผลลัพธ์
2nd Array element: {"1":{"2":{"3":{"4":[5,{"6":{"7":8}}]}}}}
Field "1" {"2":{"3":{"4":[5,{"6":{"7":8}}]}}}
{}
[6]
[6,3]
สังเกต: JSON parser ของ json.simple รองรับรูปแบบที่ไม่เข้มงวด เช่น comma ต่อท้าย หรือค่าว่างในอาร์เรย์