JSON

JSON Path Extractor / Flatten

แปลง JSON แบบซ้อนกันให้เป็นรายการแบบแบน "เส้นทาง: ค่า" (Flatten) และประกอบกลับเป็นโครงสร้างซ้อนกัน (Unflatten) รูปแบบเส้นทางเหมือนกับใน JSONPath/JSON Diff: store.book[0].price

Deeply nested JSON is hard to compare or iterate over programmatically. Flatten unrolls such a structure into a flat list of "path: value" pairs (e.g. store.book[0].price: 12.99), and Unflatten rebuilds it.

How to use it

Common uses

Things to keep in mind

Array index notation varies between libraries — this tool uses items[0], though some write items.0 without brackets.

Unflatten requires that paths don't conflict with each other (e.g. one and one.two at the same time) — otherwise the structure can't be unambiguously rebuilt.

บทความเกี่ยวกับเครื่องมือนี้: JSON Flatten: แปลงโครงสร้างซ้อนกันให้เป็นรายการแบบแบน

คำถามที่พบบ่อย

การ "flatten" object JSON ทำอะไรกันแน่?

มันแปลง object และ array ที่ซ้อนกันให้เป็น object ระดับเดียวที่มีคีย์แบบจุดหรือวงเล็บเหลี่ยม (เช่น user.address.city หรือ items[0].id) ทำให้ข้อมูลที่ซ้อนลึกอ่านง่ายขึ้นในรูปตารางแบนหรือนำเข้าโปรแกรมสเปรดชีตได้

JSON ที่ทำ flatten แล้วแปลงกลับเป็นรูปแบบซ้อนเดิมได้ไหม?

ได้ ตราบใดที่รูปแบบคีย์สม่ำเสมอ — การย้อนกระบวนการจะสร้างโครงสร้างซ้อนเดิมกลับคืนโดยแยกแต่ละเส้นทางคีย์กลับเป็น object และ array

การทำ flatten ทำให้ข้อมูลจาก JSON ต้นฉบับหายไปหรือไม่?

ไม่ ทุกค่าจะถูกเก็บไว้ มีเพียงโครงสร้างที่เปลี่ยนไป เพราะแต่ละเส้นทางซ้อนที่ไม่ซ้ำกันจะกลายเป็นคีย์แบนของตัวเอง

จะเกิดอะไรขึ้นหากคีย์จริงมีจุดอยู่ในตัวเอง?

นี่คือสถานการณ์ที่กำกวม: เส้นทาง user.name อาจหมายถึงทั้ง object ที่ซ้อนกัน {"user": {"name": ...}} หรือคีย์แบบแบน {"user.name": ...} รูปแบบสัญกรณ์จุดไม่สามารถแยกความแตกต่างนี้ได้ จึงควรหลีกเลี่ยงคีย์แบบนี้หรือจัดการแยกต่างหาก

รูปแบบเส้นทางเหมือนกันในทุกเครื่องมือลักษณะนี้หรือไม่?

ไม่ สัญกรณ์จุดสำหรับ object (user.name) พบได้ทั่วไปแทบทุกที่ แต่สัญกรณ์สำหรับดัชนีอาร์เรย์แตกต่างกันไป — ที่นี่ใช้ items[0] แต่บางไลบรารีเขียนเป็น items.0 โดยไม่มีวงเล็บ

บทความ: JSON

JSON Formatter: การจัดรูปแบบ ย่อขนาด และตรวจสอบความถูกต้อง

จัดรูปแบบเพื่อให้อ่านง่าย ย่อขนาดเพื่อลดขนาด ตรวจสอบเพื่อความถูกต้อง — สามงานที่ต่างกันกับ JSON

JSONPath: ค้นหาข้อมูลใน JSON โดยไม่ต้องแยกวิเคราะห์เอง

JSONPath ช่วยดึงค่าที่ต้องการจาก JSON ขนาดใหญ่ด้วยนิพจน์เดียวแทนการไล่ดูเองอย่างไร

JSON Diff: การเปรียบเทียบเชิงโครงสร้างต่างจากการเปรียบเทียบข้อความอย่างไร

เหตุใดลำดับคีย์จึงไม่ควรส่งผลต่อการเปรียบเทียบเอกสาร JSON สองฉบับ

JSON Schema: วิธีอธิบายและตรวจสอบโครงสร้างของ JSON

JSON Schema ช่วยตรวจสอบโดยอัตโนมัติว่าข้อมูลตรงกับสัญญาที่คาดหวังหรือไม่ได้อย่างไร

JSON Sort Keys: เหตุใดจึงต้องเรียงลำดับคีย์ของอ็อบเจกต์

เหตุใดลำดับคีย์ JSON จึงไม่ถูกกำหนดไว้ แต่การเรียงลำดับยังคงมีประโยชน์ในทางปฏิบัติ

JSON Repair: เหตุใด JSON จึงเสียหายและจะแก้ไขอย่างไร

สาเหตุทั่วไปของ JSON ที่ "เสียหาย" และสิ่งที่การซ่อมแซมอัตโนมัติทำได้และทำไม่ได้

Mock JSON Generator: ข้อมูลปลอมมีประโยชน์อย่างไร

ข้อมูล mock ช่วยให้เริ่มสร้าง UI ได้ก่อนที่ backend จะพร้อมอย่างไร

JSON ↔ YAML/CSV/XML/TOML: เมื่อไหร่และทำไมต้องแปลง

ข้อมูลใดสูญหายเมื่อแปลง JSON เป็น CSV และเหตุใด YAML กับ TOML จึงเป็นที่นิยมสำหรับไฟล์การตั้งค่า