Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ถอดรหัส (Decode) JSON Object ใน Java

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 ต่อท้าย หรือค่าว่างในอาร์เรย์