logo
GeekFormat

คิวรี JSONPath

คิวรี JSONPath ออนไลน์ รองรับการเข้าถึงคุณสมบัติ $.property ดัชนีอาร์เรย์ [n] ไวด์การ์ด [*] สไลซ์อาร์เรย์ [start:end] นิพจน์การกรองตามเงื่อนไข ?() หลังจากป้อน JSON และพาธ จะทำการคิวรีแบบเรียลไทม์ (400ms debounce) รองรับการสลับโหมดคู่ระหว่างมุมมอง JSON ที่จัดรูปแบบแล้วและมุมมองตารางที่จัดแนว มี 8 ตัวอย่างพาธที่ใช้บ่อยในตัว สามารถซ่อมแซมข้อผิดพลาด JSON อัตโนมัติ รองรับการอัปโหลดไฟล์ JSON ดาวน์โหลดผลลัพธ์การคิวรี ปุ่มลัดคีย์บอร์ด บันทึกประวัติในเครื่องอัตโนมัติ ปรับความกว้างของแผงด้านซ้าย-ขวาได้ สลับขนาดฟอนต์ได้ การแยกวิเคราะห์และคิวรีทั้งหมดทำในเบราว์เซอร์ในเครื่อง ไม่อัปโหลดข้อมูลใดๆ เหมาะสำหรับ QA ทดสอบการยืนยันอินเทอร์เฟซ แบ็กเอนด์ดีบักการแยกฟิลด์บันทึก ฟรอนต์เอนด์เชื่อมต่อ API ตรวจสอบโครงสร้างการตอบกลับ

คำแนะนำที่เกี่ยวข้อง

กรณีการใช้งาน

  • วิศวกรทดสอบ QA ตรวจสอบนิพจน์การยืนยัน JSONPath แบบโต้ตอบว่าสามารถแยกฟิลด์เป้าหมายได้อย่างถูกต้องก่อนเขียนการทดสอบอัตโนมัติอินเทอร์เฟซ
  • นักพัฒนาแบ็กเอนด์ดีบักการตอบกลับอินเทอร์เฟซแบบซ้อนที่ซับซ้อน ระบุพาธฟิลด์ลึกอย่างรวดเร็ว ไม่ต้องขยายทีละชั้นด้วยตนเอง
  • ฟรอนต์เอนด์เชื่อมต่อ API ของบุคคลที่สาม ตรวจสอบโครงสร้าง JSON การตอบกลับอย่างรวดเร็ว ยืนยันพาธฟิลด์ก่อนเขียนโค้ดเพื่อรับค่า
  • ฝ่ายปฏิบัติการ/แบ็กเอนด์ตรวจสอบฟิลด์ JSON ในบันทึก ELK, Jaeger แยกค่าฟิลด์เฉพาะเพื่อวิเคราะห์ปัญหาอย่างรวดเร็ว
  • ทำการกรองข้อมูลการตอบกลับ JSON อินเทอร์เฟซตามเงื่อนไขก่อนวิเคราะห์ข้อมูล กรองระเบียนที่ตรงตามเงื่อนไขก่อนดำเนินการต่อ
  • ก่อนกำหนดค่าตัวแยก JSON ในเครื่องมือ Postman, JMeter, RestAssured ดีบักนิพจน์ในเครื่องเพื่อหลีกเลี่ยงการเรียกอินเทอร์เฟซซ้ำๆ
  • ประมวลผลข้อมูล JSON แบบแบตช์ แยกชุดย่อยฟิลด์ที่ต้องการอย่างรวดเร็วเพื่อสร้างโครงสร้างข้อมูลใหม่
  • เมื่อเรียนรู้ไวยากรณ์ JSONPath ตรวจสอบรูปแบบไวยากรณ์ต่างๆ อย่างรวดเร็วผ่านการตอบสนองแบบเรียลไทม์ ทำให้เข้าใจลึกซึ้งขึ้น
  • เมื่อดีบักการพัฒนาเว็บครอว์เลอร์ ตรวจสอบว่าพาธการแยกข้อมูลที่อินเทอร์เฟซ JSON ส่งกลับถูกต้องหรือไม่
  • เมื่อเขียนเอกสาร API ใช้เครื่องมือตรวจสอบพาธของ JSON ตัวอย่างก่อนเขียนลงในตัวอย่างเอกสาร
  • นักพัฒนามือถือดีบักอินเทอร์เฟซ เปิดเครื่องมือชั่วคราวบนโทรศัพท์เพื่อตรวจสอบการแยกฟิลด์อย่างรวดเร็ว ไม่ต้องหาคอมพิวเตอร์
  • ในระหว่าง Code Review ตรวจสอบว่านิพจน์ JSONPath ที่เพื่อนร่วมงานเขียนถูกต้องและสามารถรับค่าที่คาดหวังได้หรือไม่

คุณสมบัติ

  • รองรับไวยากรณ์ที่ใช้งานได้จริงครบถ้วน: การเข้าถึงคุณสมบัติ $.property ดัชนีอาร์เรย์ [n] (รวม [-1] สำหรับรายการสุดท้าย) ไวด์การ์ด [*] สไลซ์อาร์เรย์ [start:end] การกรองตามเงื่อนไข ?() (รองรับการเปรียบเทียบ ==/!=/>/</>=/<=)
  • คิวรีแบบเรียลไทม์: หลังจากป้อน JSON หรือพาธ จะทำการคิวรีอัตโนมัติด้วย 400ms debounce ไม่ต้องคลิกปุ่ม อัปเดตผลลัพธ์ทันที
  • มุมมองคู่ JSON/ตาราง: ผลลัพธ์การคิวรีรองรับการสลับระหว่างมุมมอง JSON ที่สวยงามและมุมมองตารางที่จัดแนว ผลลัพธ์อาร์เรย์ออบเจ็กต์จะแสดงตามคอลัมน์โดยอัตโนมัติ สะดวกสำหรับการเรียกดูอย่างรวดเร็ว
  • ตัวอย่างที่ใช้บ่อยในตัว: เมนูแบบดรอปดาวน์มี 8 ตัวอย่างพาธที่ใช้บ่อย (ออบเจ็กต์ราก, หนังสือทั้งหมด, รายการแรก/สุดท้าย, สไลซ์, แยกราคา, การกรองตามเงื่อนไข ฯลฯ) คลิกเพื่อเติมทันที
  • ป๊อปอัปความช่วยเหลือไวยากรณ์: เปิดแผงความช่วยเหลือด้วยคลิกเดียวเพื่อดูการอ้างอิงไวยากรณ์หลัก 6 รายการและคำอธิบายปุ่มลัดคีย์บอร์ด ปรับปุ่มลัดสำหรับ Mac/Windows อัตโนมัติ
  • ซ่อมแซมข้อผิดพลาดอัตโนมัติ: เมื่อ JSON มีข้อผิดพลาดรูปแบบ จะตรวจหาปัญหาที่สามารถซ่อมแซมได้อัตโนมัติ ซ่อมแซมข้อผิดพลาดไวยากรณ์ JSON ทั่วไปได้ด้วยคลิกเดียว (ขาดจุลภาค, อัญประกาศ, จุลภาคท้าย ฯลฯ)
  • จัดรูปแบบด้วยคลิกเดียว: มีฟังก์ชันจัดรูปแบบ JSON ในตัว ใช้ Shift+Cmd/Ctrl+F เพื่อทำให้ JSON ที่ป้อนสวยงามอย่างรวดเร็ว จัดเรียงเรียบร้อยง่ายต่อการอ่านระดับชั้น
  • อัปโหลดและดาวน์โหลดไฟล์: รองรับการอัปโหลดไฟล์ .json/.txt เพื่ออ่านเนื้อหาโดยตรง ดาวน์โหลดผลลัพธ์การคิวรีเป็นไฟล์ query-result.json ด้วยคลิกเดียว
  • ปุ่มลัดคีย์บอร์ด: ปุ่มลัดชุดคีย์ผสม Shift+Cmd/Ctrl (Enter คิวรี, F จัดรูปแบบ, O อัปโหลด, D ดาวน์โหลด, K ล้าง) เพิ่มประสิทธิภาพการทำงาน
  • ประวัติในเครื่อง: บันทึกข้อมูลล่าสุด 200 รายการลงใน localStorage ของเบราว์เซอร์อัตโนมัติ เปิดครั้งต่อไปจะกู้คืนเนื้อหาครั้งก่อนอัตโนมัติ ไม่ต้องวางซ้ำ
  • ปรับความกว้างแผงได้: บน PC สามารถลากแถบแยกกลางเพื่อปรับอัตราส่วนความกว้างของแผงซ้าย-ขวา จัดสรรพื้นที่อย่างยืดหยุ่นตามโครงสร้าง JSON
  • สลับขนาดฟอนต์: รองรับการสลับขนาดฟอนต์โค้ด 14px/16px ปกป้องสายตาในระหว่างดีบักเป็นเวลานาน
  • ตัวแก้ไขโค้ดแบบความกว้างคงที่: ใช้ CodeMirror สำหรับเน้นไวยากรณ์ แสดงหมายเลขบรรทัด จับคู่วงเล็บ ประสบการณ์การแก้ไขมืออาชีพและราบรื่น
  • ประมวลผลในเบราว์เซอร์ในเครื่อง: การแยกวิเคราะห์ JSON, การจับคู่พาธ, การกรองตามเงื่อนไขทั้งหมดทำใน JavaScript ในเครื่อง ข้อมูลไม่อัปโหลดไปยังเซิร์ฟเวอร์ ใช้งานกับข้อมูลอินเทอร์เฟซที่ละเอียดอ่อนและบันทึกได้อย่างมั่นใจ

วิธีการใช้งาน

  1. คลิกปุ่ม「ตัวอย่าง」บนแถบเครื่องมือเพื่อโหลด JSON ตัวอย่างเพื่อสัมผัสอย่างรวดเร็ว หรือวาง/อัปโหลดข้อมูล JSON ของคุณเองลงในตัวแก้ไขด้านซ้าย
  2. ป้อนนิพจน์ JSONPath ในช่องคิวรีด้านบน (สามารถคลิกปุ่ม「ตัวอย่าง」ทางด้านขวาเพื่อเลือกพาธที่ใช้บ่อย) ขึ้นต้นด้วย $ หรือเขียนพาธคุณสมบัติโดยตรงก็ได้
  3. หลังจากป้อน จะคิวรีอัตโนมัติใน 400ms ด้านขวาจะแสดงผลลัพธ์ทันที; สามารถสลับ「มุมมอง JSON」เพื่อดูโครงสร้างที่จัดรูปแบบหรือ「มุมมองตาราง」เพื่อดูรายการที่จัดแนว
  4. หลังจากยืนยันนิพจน์ถูกต้องแล้ว คลิกปุ่มคัดลอกหรือดาวน์โหลดเพื่อบันทึกผลลัพธ์ หรือคัดลอกนิพจน์ JSONPath ไปยังเครื่องมือเช่น Postman/JMeter เพื่อใช้งาน

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

รองรับไวยากรณ์ JSONPath อะไรบ้าง?

รองรับไวยากรณ์ที่ใช้งานได้จริงดังต่อไปนี้: ①เข้าถึงคุณสมบัติออบเจ็กต์ด้วย $.property หรือ ['property']; ②เข้าถึงองค์ประกอบอาร์เรย์ตามดัชนีด้วย [n] (n เริ่มจาก 0, [-1] หมายถึงองค์ประกอบสุดท้าย); ③ไวด์การ์ด [*] หรือ .* จับคู่องค์ประกอบทั้งหมดของอาร์เรย์หรือค่าคุณสมบัติทั้งหมดของออบเจ็กต์; ④สไลซ์อาร์เรย์ [start:end] รับองค์ประกอบในช่วงที่ระบุ; ⑤การกรองตามเงื่อนไข ?(@.field op value) รองรับตัวดำเนินการเปรียบเทียบ 6 ชนิด ==/!=/>/</>=/<= รองรับการเปรียบเทียบสตริงและตัวเลข

จะแยกองค์ประกอบในอาร์เรย์ที่ตรงตามเงื่อนไขได้อย่างไร?

ใช้นิพจน์การกรองตามเงื่อนไข ?() ตัวอย่างเช่น $.store.book[?(@.price < 80)] กรองหนังสือที่มีราคาน้อยกว่า 80, $.store.book[?(@.category == 'การเขียนโปรแกรม')] กรองหนังสือในหมวดการเขียนโปรแกรม โปรดทราบว่าชื่อคุณสมบัติต้องมี @. นำหน้าเพื่อระบุองค์ประกอบปัจจุบัน ค่าสตริงต้องอยู่ในอัญประกาศเดี่ยวหรืออัญประกาศคู่

จะรับองค์ประกอบแรก/สุดท้าย/องค์ประกอบ N แรกของอาร์เรย์ได้อย่างไร?

[0] รับองค์ประกอบแรก, [-1] รับองค์ประกอบสุดท้าย, [0:2] รับองค์ประกอบ 2 ตัวแรกที่ดัชนี 0 ถึง 1 (สไลซ์ปิดทางซ้ายเปิดทางขวา ไม่รวมดัชนี end) ตัวอย่างเช่น $.store.book[0:3] รับหนังสือ 3 เล่มแรก

มุมมองตารางแตกต่างจากมุมมอง JSON อย่างไร?

มุมมอง JSON แสดงผลลัพธ์ JSON ที่จัดรูปแบบด้วยการเยื้องมาตรฐาน รักษาโครงสร้างแบบซ้อนที่สมบูรณ์ เหมาะสำหรับการคัดลอกและดูข้อมูลที่สมบูรณ์; มุมมองตารางจะจัดแสดงผลลัพธ์อาร์เรย์ออบเจ็กต์ตามคอลัมน์คุณสมบัติโดยอัตโนมัติ คล้ายกับตาราง Excel สะดวกและชัดเจนมากขึ้นเมื่อเรียกดูหลายระเบียน สามารถสแกนค่าฟิลด์ของทุกแถวเพื่อเปรียบเทียบความแตกต่างได้อย่างรวดเร็ว ผลลัพธ์ประเภทง่ายจะแสดงตามคู่คีย์-ค่าเช่นกัน

จะทำอย่างไรเมื่อมีข้อความแสดงข้อผิดพลาดการแยกวิเคราะห์ JSON?

หาก JSON ที่ป้อนมีข้อผิดพลาดไวยากรณ์ (ขาดจุลภาค, อัญประกาศไม่จับคู่, จุลภาคท้ายมากเกินไป, อัญประกาศเดี่ยว ฯลฯ) พื้นที่ข้อผิดพลาดจะแสดงข้อความเตือนสีแดง และจะมีปุ่ม「ซ่อมแซมข้อผิดพลาด」คลิกเพื่อพยายามซ่อมแซมปัญหา JSON ทั่วไปโดยอัตโนมัติ คุณยังสามารถใช้ Shift+Cmd/Ctrl+F เพื่อจัดรูปแบบก่อน หากจัดรูปแบบแล้วมีข้อผิดพลาด แสดงว่า JSON มีปัญหาแน่นอน ให้ซ่อมแซมก่อนแล้วจึงคิวรี

หลังจากคิวรีแล้วไม่แสดงผลลัพธ์ใดๆ?

โปรดตรวจสอบ: ①JSON ถูกกฎหมายและถูกต้องหรือไม่ (สามารถคลิกปุ่มจัดรูปแบบเพื่อตรวจสอบ); ②การสะกดพาธ JSONPath ถูกต้องหรือไม่ ชื่อคุณสมบัติไวต่อการพิมพ์เล็ก-ใหญ่; ③พาธมีอยู่จริงหรือไม่ (เช่น การเข้าถึงคุณสมบัติที่ไม่มีอยู่จะทำให้เกิดข้อผิดพลาด); ④ไวยากรณ์นิพจน์การกรองถูกต้องหรือไม่ วงเล็บและอัญประกาศจับคู่กันหรือไม่

จะใช้ตัวอย่างในตัวได้อย่างไร?

คลิกปุ่ม「ตัวอย่าง」(ลูกศรชี้ลง) ทางด้านขวาของช่องคิวรี เมนูแบบดรอปดาวน์จะแสดง 8 ตัวอย่างพาธที่ใช้บ่อย คลิกที่ตัวอย่างใดก็ได้เพื่อเติมนิพจน์พาธโดยอัตโนมัติ ขอแนะนำให้คลิกปุ่ม「ตัวอย่าง」เพื่อโหลดข้อมูล JSON ตัวอย่าง (ข้อมูลร้านหนังสือ) ก่อน จากนั้นจึงใช้พาธตัวอย่างเพื่อสัมผัสผลลัพธ์

มีปุ่มลัดอะไรบ้าง?

ใช้คีย์ผสม Shift+Cmd(Mac)/Shift+Ctrl(Windows) อย่างสม่ำเสมอ: Shift+Enter ดำเนินการคิวรี, Shift+F จัดรูปแบบ JSON, Shift+O อัปโหลดไฟล์, Shift+D ดาวน์โหลดผลลัพธ์, Shift+K ล้างเนื้อหาทั้งหมด ในปุ่มช่วยเหลือ (ไอคอน ?) สามารถดูรายการปุ่มลัดที่สมบูรณ์ได้ตลอดเวลา

การกรองตามเงื่อนไขรองรับตัวดำเนินการเปรียบเทียบอะไรบ้าง?

รองรับตัวดำเนินการเปรียบเทียบ 6 ชนิด: == (เท่ากับ), != (ไม่เท่ากับ), > (มากกว่า), < (น้อยกว่า), >= (มากกว่าหรือเท่ากับ), <= (น้อยกว่าหรือเท่ากับ) การเปรียบเทียบตัวเลขจะเปรียบเทียบตามขนาดตัวเลข การเปรียบเทียบสตริงจะเปรียบเทียบตามลำดับพจนานุกรม ค่าสตริงต้องอยู่ในอัญประกาศเดี่ยวหรืออัญประกาศคู่

พาธต้องขึ้นต้นด้วย $ หรือไม่?

ไม่บังคับ จะเติม $. ที่จุดเริ่มต้นให้อัตโนมัติ การป้อน store.book[0] โดยตรงก็สามารถทำงานได้ตามปกติ ระบบจะทำให้เป็นมาตรฐานเป็น $.store.book[0] เพื่อดำเนินการ อย่างไรก็ตาม ข้อกำหนด JSONPath มาตรฐานแนะนำให้ขึ้นต้นด้วย $ เพื่อระบุโหนดราก

เหตุใดเนื้อหาที่ฉันป้อนครั้งก่อนจึงยังอยู่เมื่อเปิดครั้งต่อไป?

จะบันทึก JSON ที่ป้อนล่าสุดลงใน localStorage ในเครื่องของเบราว์เซอร์อัตโนมัติ (ประวัติสูงสุด 200 รายการ) เมื่อเปิดหน้าครั้งต่อไปจะกู้คืนเนื้อหาครั้งก่อนอัตโนมัติ ไม่ต้องวางผลลัพธ์การตอบกลับอินเทอร์เฟซซ้ำทุกครั้ง ปุ่มล้าง (Shift+K) จะล้างเนื้อหาปัจจุบัน

สามารถอัปโหลดไฟล์ JSON ได้หรือไม่?

ได้ คลิกปุ่ม「อัปโหลด」บนแถบเครื่องมือหรือกด Shift+O เลือกไฟล์ .json หรือ .txt ในเครื่องเพื่ออ่านเนื้อหาไฟล์และเติมลงในช่องป้อนข้อมูลโดยอัตโนมัติ ผลลัพธ์การคิวรียังสามารถคลิกปุ่ม「ดาวน์โหลด」หรือ Shift+D เพื่อบันทึกเป็นไฟล์ query-result.json ลงในเครื่องได้

เหมาะสำหรับการยืนยันอินเทอร์เฟซ Postman/JMeter หรือไม่?

เหมาะอย่างยิ่ง ในระหว่างการดีบักอินเทอร์เฟซ วาง JSON ที่อินเทอร์เฟซส่งกลับลงในเครื่องมือ ปรับนิพจน์ JSONPath แบบโต้ตอบจนกว่าผลลัพธ์การคิวรีจะตรงตามที่คาดไว้ จากนั้นคัดลอกนิพจน์ที่ผ่านการตรวจสอบแล้วไปยังสคริปต์ทดสอบ Postman, JMeter JSON Extractor, เฟรมเวิร์กทดสอบอัตโนมัติเพื่อใช้งาน ลดเวลาดีบักออนไลน์ได้อย่างมาก

ข้อมูลอินเทอร์เฟซที่ฉันป้อนจะถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่?

ไม่ การแยกวิเคราะห์ JSON, การจับคู่พาธ JSONPath, การกรองตามเงื่อนไข, การจัดรูปแบบตารางทั้งหมดทำใน JavaScript ในเครื่องของเบราว์เซอร์ของคุณ เนื้อหา JSON ที่ป้อนจะไม่ถูกส่งผ่านเครือข่ายไปยังเซิร์ฟเวอร์ใดๆ หลังจากปิดหน้า จะมีเพียง localStorage ในเครื่องเท่านั้นที่เก็บไว้ (สามารถล้างได้) ใช้งานกับข้อมูลธุรกิจที่ละเอียดอ่อนและข้อมูลอินเทอร์เฟซที่ยังไม่เปิดตัวได้อย่างมั่นใจ

สามารถใช้ไวด์การ์ด [*] กับออบเจ็กต์ได้หรือไม่?

ได้ [*] ใช้กับอาร์เรย์จะส่งคืนองค์ประกอบทั้งหมดของอาร์เรย์; ใช้กับออบเจ็กต์ (เช่น $.store.*) จะส่งคืนอาร์เรย์ที่ประกอบด้วยค่าคุณสมบัติทั้งหมดของออบเจ็กต์ เมื่อใช้ร่วมกับคุณสมบัติ เช่น $.store.book[*].author สามารถแยกคุณสมบัติ author ขององค์ประกอบทั้งหมดในอาร์เรย์ สร้างเป็นรายชื่อผู้แต่ง

เกี่ยวกับ JSONPath และการแยกข้อมูล

JSONPath เป็นภาษานิพจน์พาธสำหรับแยกข้อมูลที่ระบุจากเอกสาร JSON คล้ายกับที่ XPath ทำกับ XML ในการพัฒนาและทดสอบ API JSON ที่อินเทอร์เฟซส่งกลับมักมีระดับชั้นลึกและซ้อนกันมาก การขยายด้วยตนเองทีละชั้นเพื่อค้นหาฟิลด์มีประสิทธิภาพต่ำและมักผิดพลาด การใช้ JSONPath สามารถระบุตำแหน่งและแยกข้อมูลเป้าหมายได้อย่างถูกต้องด้วยนิพจน์บรรทัดเดียว เป็นสิ่งจำเป็นสำหรับนักพัฒนาในสถานการณ์ดีบักอินเทอร์เฟซ ทดสอบอัตโนมัติ และแยกข้อมูล

แนวคิดการออกแบบหลักของ JSONPath คือการใช้สัญลักษณ์พาธเพื่ออธิบายตำแหน่งข้อมูล: $ แทนโหนดราก (ออบเจ็กต์ JSON ทั้งหมด) จุด . หรือวงเล็บเหลี่ยม [] เข้าถึงคุณสมบัติลูก, [n] เข้าถึงองค์ประกอบอาร์เรย์ตามดัชนี, [*] จับคู่องค์ประกอบทั้งหมด, [start:end] สไลซ์ส่วนของอาร์เรย์, ?() กรององค์ประกอบอาร์เรย์ตามเงื่อนไข ไวยากรณ์ชุดนี้กระชับแต่มีประสิทธิภาพ ครอบคลุมความต้องการแยกข้อมูลส่วนใหญ่

การกรองตามเงื่อนไขเป็นหนึ่งในฟังก์ชันที่ใช้งานได้จริงที่สุดของ JSONPath ใช้รูปแบบ ?(@.ฟิลด์ ตัวดำเนินการ ค่า) เพื่อแสดงตรรกะการกรอง ตัวอย่างเช่น ?(@.price < 100) กรองรายการอาร์เรย์ที่ฟิลด์ราคาน้อยกว่า 100, ?(@.status == 'active') กรองระเบียนที่สถานะเป็นแอคทีฟ @ แทนองค์ประกอบอาร์เรย์ที่กำลังวนซ้ำอยู่ในปัจจุบัน @.field เข้าถึงฟิลด์เฉพาะขององค์ประกอบปัจจุบัน ทำให้การกรองตามเงื่อนไขเข้าใจง่ายมาก

เหตุใดจึงต้องมีเครื่องมือ JSONPath เฉพาะแทนที่จะดีบักโดยตรงในโค้ด? เนื่องจากเมื่อเขียนการยืนยันอัตโนมัติของอินเทอร์เฟซหรือโค้ดแยกข้อมูล หาก JSONPath เขียนผิด คุณอาจต้องเรียกอินเทอร์เฟซซ้ำๆ พิมพ์บันทึก แก้ไขโค้ดแล้วรันใหม่ มีประสิทธิภาพต่ำมาก การดีบักแบบโต้ตอบในเครื่องมือออนไลน์สามารถเห็นผลลัพธ์ในระดับวินาที ปรับนิพจน์และตอบสนองทันที หลังจากยืนยันถูกต้องแล้วจึงคัดลอกไปยังโค้ด ช่วยประหยัดเวลาดีบักได้มาก

มุมมองตารางเป็นฟังก์ชันที่ใช้งานได้จริงซึ่งทำให้เครื่องมือนี้แตกต่างจากเครื่องมืออื่นๆ มากมาย: เมื่อผลลัพธ์การคิวรีเป็นอาร์เรย์ออบเจ็กต์ (ซึ่งเป็นรูปแบบรายการที่อินเทอร์เฟซส่งกลับบ่อยที่สุด) จะแยกคีย์ของออบเจ็กต์ทั้งหมดเป็นส่วนหัวตารางโดยอัตโนมัติ แสดงข้อมูลแต่ละแถวอย่างจัดแนว คล้ายกับประสบการณ์การเรียกดูตาราง Excel สะดวกและชัดเจนมากกว่าการค้นหาค่าฟิลด์ทีละแถวใน JSON ที่เยื้อง สามารถสแกนและเปรียบเทียบความแตกต่างฟิลด์ของหลายระเบียนได้ด้วยตาเพียงชำเลือง

การซ่อมแซมข้อผิดพลาด JSON อัตโนมัติยังเป็นฟังก์ชันที่ออกแบบมาสำหรับสถานการณ์การพัฒนาจริง: JSON ที่คัดลอกมาจากบันทึก เอกสาร หน้าต่างแชท มักมีปัญหาเล็กน้อยต่างๆ — ใช้อัญประกาศเดี่ยว ขาดจุลภาค มีจุลภาคท้ายที่รายการสุดท้าย ชื่อคุณสมบัติไม่มีอัญประกาศ ฯลฯ การซ่อมแซมด้วยตนเองยุ่งยาก ฟังก์ชันซ่อมแซมอัตโนมัติของเครื่องมือสามารถจัดการปัญหารูปแบบ JSON ทั่วไปส่วนใหญ่ได้ด้วยคลิกเดียว ไม่ต้องค้นหาข้อผิดพลาดทีละตัวอักษร

ประวัติในเครื่องเป็นรายละเอียดเล็กน้อยที่ปรับให้เหมาะกับการใช้งานบ่อย: นักพัฒนามักต้องดีบักอินเทอร์เฟซเดิมซ้ำๆ การเปิดเครื่องมือแล้ววาง JSON ซ้ำทุกครั้งยุ่งยาก เครื่องมือจะบันทึกข้อมูลที่ป้อนล่าสุดลงในที่จัดเก็บในเครื่องของเบราว์เซอร์อัตโนมัติ เปิดครั้งต่อไปจะกู้คืนเนื้อหาครั้งก่อนอัตโนมัติ ประวัติ 200 รายการเพียงพอสำหรับการใช้งานประจำวัน ข้อมูลทั้งหมดเก็บอยู่ในเบราว์เซอร์ของคุณเองเท่านั้น ไม่อัปโหลด

ต้องชี้แจงว่าเครื่องมือนี้รองรับชุดย่อยไวยากรณ์ JSONPath หลักที่ใช้งานได้จริง (การเข้าถึงคุณสมบัติ ดัชนี ไวด์การ์ด สไลซ์ การกรองตามเงื่อนไข) ครอบคลุมมากกว่า 90% ของสถานการณ์การพัฒนาประจำวัน สำหรับไวยากรณ์ขั้นสูงเช่น การเรียกซ้ำ (recursive descent, ..), นิพจน์สคริปต์, การรวมหลายเงื่อนไข ยังไม่รองรับในขณะนี้ หากสถานการณ์ของคุณต้องการคุณสมบัติขั้นสูงเหล่านี้ อาจต้องใช้ไลบรารีการนำไปใช้ที่สมบูรณ์มากขึ้น สำหรับความต้องการดีบักอินเทอร์เฟซและแยกฟิลด์ส่วนใหญ่ ไวยากรณ์ปัจจุบันเพียงพอและมีน้ำหนักเบารวดเร็ว

术语表

JSONPath
ภาษานิพจน์พาธสำหรับแยกส่วนที่ระบุจากข้อมูล JSON คล้ายกับ XPath สำหรับ XML อธิบายตำแหน่งข้อมูลเป้าหมายผ่านสัญลักษณ์พาธ
โหนดราก ($)
จุดเริ่มต้นของนิพจน์ JSONPath แทนออบเจ็กต์หรืออาร์เรย์รากของเอกสาร JSON ทั้งหมด พาธสามารถเริ่มจาก $ ได้ เครื่องมือยังรองรับการละ $ แล้วเขียนพาธโดยตรง
โหนดปัจจุบัน (@)
ใช้ในนิพจน์การกรอง แทนองค์ประกอบอาร์เรย์ที่กำลังวนซ้ำอยู่ในปัจจุบัน @.field ใช้เพื่อเข้าถึงฟิลด์ที่ระบุขององค์ประกอบปัจจุบัน
การเข้าถึงคุณสมบัติ (.property หรือ ['property'])
รูปแบบการเขียนสองแบบสำหรับเข้าถึงคุณสมบัติที่ระบุของออบเจ็กต์: รูปแบบจุด ($.store.book) กระชับ รูปแบบวงเล็บเหลี่ยมพร้อมอัญประกาศ ($['store']['book']) เหมาะสำหรับชื่อคุณสมบัติที่มีอักขระพิเศษ
ดัชนีอาร์เรย์ ([n])
เข้าถึงองค์ประกอบอาร์เรย์ตามตำแหน่ง ดัชนีเริ่มจาก 0, [0] แทนองค์ประกอบแรก, [-1] แทนองค์ประกอบสุดท้าย
ไวด์การ์ด ([*] หรือ .*)
จับคู่รายการย่อยทั้งหมดในตำแหน่งปัจจุบัน: ใช้กับอาร์เรย์ส่งคืนองค์ประกอบทั้งหมด ใช้กับออบเจ็กต์ส่งคืนค่าคุณสมบัติทั้งหมด
สไลซ์อาร์เรย์ ([start:end])
สไลซ์องค์ประกอบส่วนหนึ่งของอาร์เรย์ ช่วงปิดทางซ้ายเปิดทางขวา (รวม start ไม่รวม end) ละ start หมายถึงเริ่มจากจุดเริ่มต้น ละ end หมายถึงไปจนถึงจุดสิ้นสุด
ตัวกรองตามเงื่อนไข (?())
กรององค์ประกอบอาร์เรย์ตามเงื่อนไข เขียนนิพจน์เปรียบเทียบภายใน รองรับการเปรียบเทียบ 6 ชนิด ==/!=/>/</>=/<= ค่าสตริงต้องอยู่ในอัญประกาศ
การยืนยัน Postman
สคริปต์ Tests ในเครื่องมือทดสอบอินเทอร์เฟซ Postman ใช้ JSONPath เพื่อแยกฟิลด์ที่อินเทอร์เฟซส่งกลับแล้วทำการยืนยัน เป็นวิธีที่ใช้บ่อยในการทดสอบอัตโนมัติอินเทอร์เฟซ
ดีบาวน์ (Debounce)
เทคนิคการเพิ่มประสิทธิภาพที่หน่วงเวลาดำเนินการคิวรีหลังจากหยุดป้อน (400ms สำหรับเครื่องมือนี้) หลีกเลี่ยงการคิวรีซ้ำทุกครั้งที่กดปุ่ม เพิ่มความราบรื่นในการป้อน
CodeMirror
ส่วนประกอบตัวแก้ไขโค้ดบนเบราว์เซอร์ ให้ฟังก์ชันการแก้ไขโค้ดระดับมืออาชีพ เช่น การเน้นไวยากรณ์ หมายเลขบรรทัด การจับคู่วงเล็บ เครื่องมือนี้ใช้มันเป็นพื้นที่แก้ไข JSON
ประมวลผลในเครื่อง
ตรรกะการแยกวิเคราะห์และคิวรี JSON ทั้งหมดทำงานใน JavaScript ภายในเบราว์เซอร์ของผู้ใช้ ข้อมูลไม่อัปโหลดไปยังเซิร์ฟเวอร์ รวดเร็วและปลอดภัย เหมาะสำหรับประมวลผลข้อมูลที่ละเอียดอ่อน

ตารางอ้างอิงไวยากรณ์หลัก JSONPath

ไวยากรณ์ทั้งหมดที่เครื่องมือนี้รองรับ:

ไวยากรณ์คำอธิบายผลลัพธ์ตัวอย่าง (JSON ร้านหนังสือตัวอย่าง)
$ออบเจ็กต์ราก ส่งคืน JSON ทั้งหมดออบเจ็กต์ store ที่สมบูรณ์
$.store.book[0]เข้าถึงองค์ประกอบแรกของอาร์เรย์ book (ดัชนีเริ่มจาก 0)หนังสือ JavaScript ขั้นสูง
$.store.book[-1]เข้าถึงองค์ประกอบสุดท้ายของอาร์เรย์หนังสือ องค์ประกอบประสบการณ์ผู้ใช้
$.store.book[*]ไวด์การ์ด ส่งคืนองค์ประกอบทั้งหมดของอาร์เรย์อาร์เรย์ที่ประกอบด้วยหนังสือทั้งหมด 3 เล่ม
$.store.book[0:2]สไลซ์อาร์เรย์ รับดัชนี 0 ถึง 1 (ปิดซ้ายเปิดขวา)หนังสือ 2 เล่มแรก
$.store.book[*].authorแยกฟิลด์ author ขององค์ประกอบทั้งหมดในอาร์เรย์["zhang san","li si","wang wu"]
$.store.book[?(@.price < 80)]กรองตามเงื่อนไข กรองหนังสือที่มี price < 80หนังสือ Python และ UX 2 เล่ม (ราคา 79 และ 59)
$.store.bicycle.colorจุดเข้าถึงคุณสมบัติออบเจ็กต์แบบซ้อน"สีแดง"

ตัวดำเนินการเปรียบเทียบสำหรับการกรองตามเงื่อนไข

ตัวดำเนินการที่รองรับโดยนิพจน์การกรอง ?():

ตัวดำเนินการความหมายตัวอย่าง
==เท่ากับ (รองรับตัวเลขและสตริง)?(@.category == 'การเขียนโปรแกรม')
!=ไม่เท่ากับ?(@.status != 'deleted')
>มากกว่า (เปรียบเทียบตัวเลข)?(@.price > 100)
<น้อยกว่า?(@.price < 50)
>=มากกว่าหรือเท่ากับ?(@.age >= 18)
<=น้อยกว่าหรือเท่ากับ?(@.count <= 100)

รายการปุ่มลัดคีย์บอร์ด

ปุ่มลัดทั้งหมดใช้คีย์ผสม Shift + Cmd(Mac)/Ctrl(Windows):

การทำงานปุ่มลัด Macปุ่มลัด Windows
ดำเนินการคิวรี⇧ + ⌘ + EnterShift + Ctrl + Enter
จัดรูปแบบ JSON⇧ + ⌘ + FShift + Ctrl + F
อัปโหลดไฟล์⇧ + ⌘ + OShift + Ctrl + O
ดาวน์โหลดผลลัพธ์⇧ + ⌘ + DShift + Ctrl + D
ล้างเนื้อหา⇧ + ⌘ + KShift + Ctrl + K

Privacy & Security

การแยกวิเคราะห์ JSON การจับคู่พาธ การกรองตามเงื่อนไข การจัดรูปแบบตารางทั้งหมดของคิวรี JSONPath นี้ทำงานอย่างสมบูรณ์ใน JavaScript ภายในเบราว์เซอร์ของคุณ ข้อมูล JSON ที่คุณป้อน พาธที่คิวรี และผลลัพธ์ที่ส่งคืนจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ใดๆ และจะไม่ถูกบันทึก แคช หรือจัดเก็บไว้ในคลาวด์ ประวัติการป้อนจะถูกเก็บไว้ใน localStorage ในเครื่องของเบราว์เซอร์ของคุณเท่านั้น (สูงสุด 200 รายการ) คุณสามารถลบได้ผ่านปุ่มล้างหรือล้างข้อมูลเบราว์เซอร์ สามารถใช้งานได้อย่างมั่นใจกับฟิลด์ธุรกิจที่ละเอียดอ่อน ข้อมูลอินเทอร์เฟซที่ยังไม่เปิดตัว บันทึกสภาพแวดล้อมการผลิต ไม่มีความเสี่ยงในการรั่วไหลของข้อมูล

Authoritative References

Troubleshooting

ข้อความ「พาธไม่มีอยู่หรือค่าเป็น null/undefined」

หมายความว่าไม่พบค่าที่สอดคล้องกันใน JSON ปัจจุบันสำหรับพาธ JSONPath ตรวจสอบ: ①การสะกดชื่อคุณสมบัติและการพิมพ์เล็ก-ใหญ่ถูกต้องหรือไม่ (JSON ไวต่อการพิมพ์เล็ก-ใหญ่); ②ระดับชั้นแบบซ้อนถูกต้องหรือไม่ มีชั้นกลางอยู่หรือไม่; ③ดัชนีอาร์เรย์เกินขอบเขตหรือไม่; ④คลิกจัดรูปแบบก่อนเพื่อยืนยันว่าโครงสร้าง JSON ตรงกับที่คุณคาดไว้

ข้อความ「พยายามใช้ดัชนี/สไลซ์/ตัวกรองบนวัตถุที่ไม่ใช่อาร์เรย์」

หมายความว่าคุณใช้ดัชนี [] สไลซ์ [start:end] หรือตัวกรอง ?() บนค่าที่ไม่ใช่อาร์เรย์ การดำเนินการเหล่านี้สามารถใช้กับอาร์เรย์เท่านั้น ตรวจสอบว่าตำแหน่งที่สอดคล้องกันของพาธเป็นอาร์เรย์หรือออบเจ็กต์เดี่ยว สามารถใช้ไวด์การ์ด $ หรือพาธรากก่อนเพื่อยืนยันโครงสร้างจริง

การกรองตามเงื่อนไขไม่ส่งคืนผลลัพธ์ที่คาดไว้

ตรวจสอบ: ①หลัง @ มีจุดหรือไม่ (ต้องเขียน @.field ห้ามลืมจุด); ②ค่าสตริงอยู่ในอัญประกาศเดี่ยว/คู่หรือไม่ (?(@.name == zhangsan) ไม่ถูก ต้องเขียน ?(@.name == 'zhangsan')); ③ค่าตัวเลขอย่าใส่อัญประกาศ มิฉะนั้นจะเปรียบเทียบเป็นสตริง; ④อย่าให้มีช่องว่างเกินที่ทั้งสองข้างของตัวดำเนินการเปรียบเทียบ

ข้อความ「วงเล็บไม่จับคู่」

หมายความว่าวงเล็บเหลี่ยม [] หรือวงเล็บตัวกรอง () ของนิพจน์ JSONPath ไม่จับคู่กันอย่างถูกต้อง ตรวจสอบว่าลืมเขียน ] หรือ ) ปิดหรือไม่ โดยเฉพาะเมื่อมีวงเล็บเหลี่ยมซ้อนหลายชั้น ให้สังเกตว่าแต่ละ [ ต้องมี ] ที่สอดคล้องกัน