คิวรี JSONPath
คิวรี JSONPath ออนไลน์ รองรับการเข้าถึงคุณสมบัติ $.property ดัชนีอาร์เรย์ [n] ไวด์การ์ด [*] สไลซ์อาร์เรย์ [start:end] นิพจน์การกรองตามเงื่อนไข ?() หลังจากป้อน JSON และพาธ จะทำการคิวรีแบบเรียลไทม์ (400ms debounce) รองรับการสลับโหมดคู่ระหว่างมุมมอง JSON ที่จัดรูปแบบแล้วและมุมมองตารางที่จัดแนว มี 8 ตัวอย่างพาธที่ใช้บ่อยในตัว สามารถซ่อมแซมข้อผิดพลาด JSON อัตโนมัติ รองรับการอัปโหลดไฟล์ JSON ดาวน์โหลดผลลัพธ์การคิวรี ปุ่มลัดคีย์บอร์ด บันทึกประวัติในเครื่องอัตโนมัติ ปรับความกว้างของแผงด้านซ้าย-ขวาได้ สลับขนาดฟอนต์ได้ การแยกวิเคราะห์และคิวรีทั้งหมดทำในเบราว์เซอร์ในเครื่อง ไม่อัปโหลดข้อมูลใดๆ เหมาะสำหรับ QA ทดสอบการยืนยันอินเทอร์เฟซ แบ็กเอนด์ดีบักการแยกฟิลด์บันทึก ฟรอนต์เอนด์เชื่อมต่อ API ตรวจสอบโครงสร้างการตอบกลับ
คำแนะนำที่เกี่ยวข้อง
เกี่ยวกับ 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, ..), นิพจน์สคริปต์, การรวมหลายเงื่อนไข ยังไม่รองรับในขณะนี้ หากสถานการณ์ของคุณต้องการคุณสมบัติขั้นสูงเหล่านี้ อาจต้องใช้ไลบรารีการนำไปใช้ที่สมบูรณ์มากขึ้น สำหรับความต้องการดีบักอินเทอร์เฟซและแยกฟิลด์ส่วนใหญ่ ไวยากรณ์ปัจจุบันเพียงพอและมีน้ำหนักเบารวดเร็ว
กรณีการใช้งาน
- วิศวกรทดสอบ QA ตรวจสอบนิพจน์การยืนยัน JSONPath แบบโต้ตอบว่าสามารถแยกฟิลด์เป้าหมายได้อย่างถูกต้องก่อนเขียนการทดสอบอัตโนมัติอินเทอร์เฟซ
- นักพัฒนาแบ็กเอนด์ดีบักการตอบกลับอินเทอร์เฟซแบบซ้อนที่ซับซ้อน ระบุพาธฟิลด์ลึกอย่างรวดเร็ว ไม่ต้องขยายทีละชั้นด้วยตนเอง
- ฟรอนต์เอนด์เชื่อมต่อ API ของบุคคลที่สาม ตรวจสอบโครงสร้าง JSON การตอบกลับอย่างรวดเร็ว ยืนยันพาธฟิลด์ก่อนเขียนโค้ดเพื่อรับค่า
- ฝ่ายปฏิบัติการ/แบ็กเอนด์ตรวจสอบฟิลด์ JSON ในบันทึก ELK, Jaeger แยกค่าฟิลด์เฉพาะเพื่อวิเคราะห์ปัญหาอย่างรวดเร็ว
- ทำการกรองข้อมูลการตอบกลับ JSON อินเทอร์เฟซตามเงื่อนไขก่อนวิเคราะห์ข้อมูล กรองระเบียนที่ตรงตามเงื่อนไขก่อนดำเนินการต่อ
- ก่อนกำหนดค่าตัวแยก JSON ในเครื่องมือ Postman, JMeter, RestAssured ดีบักนิพจน์ในเครื่องเพื่อหลีกเลี่ยงการเรียกอินเทอร์เฟซซ้ำๆ
- ประมวลผลข้อมูล JSON แบบแบตช์ แยกชุดย่อยฟิลด์ที่ต้องการอย่างรวดเร็วเพื่อสร้างโครงสร้างข้อมูลใหม่
- เมื่อเรียนรู้ไวยากรณ์ JSONPath ตรวจสอบรูปแบบไวยากรณ์ต่างๆ อย่างรวดเร็วผ่านการตอบสนองแบบเรียลไทม์ ทำให้เข้าใจลึกซึ้งขึ้น
- เมื่อดีบักการพัฒนาเว็บครอว์เลอร์ ตรวจสอบว่าพาธการแยกข้อมูลที่อินเทอร์เฟซ JSON ส่งกลับถูกต้องหรือไม่
- เมื่อเขียนเอกสาร API ใช้เครื่องมือตรวจสอบพาธของ JSON ตัวอย่างก่อนเขียนลงในตัวอย่างเอกสาร
- นักพัฒนามือถือดีบักอินเทอร์เฟซ เปิดเครื่องมือชั่วคราวบนโทรศัพท์เพื่อตรวจสอบการแยกฟิลด์อย่างรวดเร็ว ไม่ต้องหาคอมพิวเตอร์
- ในระหว่าง Code Review ตรวจสอบว่านิพจน์ JSONPath ที่เพื่อนร่วมงานเขียนถูกต้องและสามารถรับค่าที่คาดหวังได้หรือไม่
วิธีการใช้งาน
- คลิกปุ่ม「ตัวอย่าง」บนแถบเครื่องมือเพื่อโหลด JSON ตัวอย่างเพื่อสัมผัสอย่างรวดเร็ว หรือวาง/อัปโหลดข้อมูล JSON ของคุณเองลงในตัวแก้ไขด้านซ้าย
- ป้อนนิพจน์ JSONPath ในช่องคิวรีด้านบน (สามารถคลิกปุ่ม「ตัวอย่าง」ทางด้านขวาเพื่อเลือกพาธที่ใช้บ่อย) ขึ้นต้นด้วย $ หรือเขียนพาธคุณสมบัติโดยตรงก็ได้
- หลังจากป้อน จะคิวรีอัตโนมัติใน 400ms ด้านขวาจะแสดงผลลัพธ์ทันที; สามารถสลับ「มุมมอง JSON」เพื่อดูโครงสร้างที่จัดรูปแบบหรือ「มุมมองตาราง」เพื่อดูรายการที่จัดแนว
- หลังจากยืนยันนิพจน์ถูกต้องแล้ว คลิกปุ่มคัดลอกหรือดาวน์โหลดเพื่อบันทึกผลลัพธ์ หรือคัดลอกนิพจน์ JSONPath ไปยังเครื่องมือเช่น Postman/JMeter เพื่อใช้งาน
คุณสมบัติ
- รองรับไวยากรณ์ที่ใช้งานได้จริงครบถ้วน: การเข้าถึงคุณสมบัติ $.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 ในเครื่อง ข้อมูลไม่อัปโหลดไปยังเซิร์ฟเวอร์ ใช้งานกับข้อมูลอินเทอร์เฟซที่ละเอียดอ่อนและบันทึกได้อย่างมั่นใจ
คำถามที่พบบ่อย
รองรับไวยากรณ์ 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 ขององค์ประกอบทั้งหมดในอาร์เรย์ สร้างเป็นรายชื่อผู้แต่ง
การแก้ไขปัญหา
ข้อความ「พาธไม่มีอยู่หรือค่าเป็น null/undefined」
หมายความว่าไม่พบค่าที่สอดคล้องกันใน JSON ปัจจุบันสำหรับพาธ JSONPath ตรวจสอบ: ①การสะกดชื่อคุณสมบัติและการพิมพ์เล็ก-ใหญ่ถูกต้องหรือไม่ (JSON ไวต่อการพิมพ์เล็ก-ใหญ่); ②ระดับชั้นแบบซ้อนถูกต้องหรือไม่ มีชั้นกลางอยู่หรือไม่; ③ดัชนีอาร์เรย์เกินขอบเขตหรือไม่; ④คลิกจัดรูปแบบก่อนเพื่อยืนยันว่าโครงสร้าง JSON ตรงกับที่คุณคาดไว้
ข้อความ「พยายามใช้ดัชนี/สไลซ์/ตัวกรองบนวัตถุที่ไม่ใช่อาร์เรย์」
หมายความว่าคุณใช้ดัชนี [] สไลซ์ [start:end] หรือตัวกรอง ?() บนค่าที่ไม่ใช่อาร์เรย์ การดำเนินการเหล่านี้สามารถใช้กับอาร์เรย์เท่านั้น ตรวจสอบว่าตำแหน่งที่สอดคล้องกันของพาธเป็นอาร์เรย์หรือออบเจ็กต์เดี่ยว สามารถใช้ไวด์การ์ด $ หรือพาธรากก่อนเพื่อยืนยันโครงสร้างจริง
การกรองตามเงื่อนไขไม่ส่งคืนผลลัพธ์ที่คาดไว้
ตรวจสอบ: ①หลัง @ มีจุดหรือไม่ (ต้องเขียน @.field ห้ามลืมจุด); ②ค่าสตริงอยู่ในอัญประกาศเดี่ยว/คู่หรือไม่ (?(@.name == zhangsan) ไม่ถูก ต้องเขียน ?(@.name == 'zhangsan')); ③ค่าตัวเลขอย่าใส่อัญประกาศ มิฉะนั้นจะเปรียบเทียบเป็นสตริง; ④อย่าให้มีช่องว่างเกินที่ทั้งสองข้างของตัวดำเนินการเปรียบเทียบ
ข้อความ「วงเล็บไม่จับคู่」
หมายความว่าวงเล็บเหลี่ยม [] หรือวงเล็บตัวกรอง () ของนิพจน์ JSONPath ไม่จับคู่กันอย่างถูกต้อง ตรวจสอบว่าลืมเขียน ] หรือ ) ปิดหรือไม่ โดยเฉพาะเมื่อมีวงเล็บเหลี่ยมซ้อนหลายชั้น ให้สังเกตว่าแต่ละ [ ต้องมี ] ที่สอดคล้องกัน
อภิธานศัพท์
- 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 |
|---|---|---|
| ดำเนินการคิวรี | ⇧ + ⌘ + Enter | Shift + Ctrl + Enter |
| จัดรูปแบบ JSON | ⇧ + ⌘ + F | Shift + Ctrl + F |
| อัปโหลดไฟล์ | ⇧ + ⌘ + O | Shift + Ctrl + O |
| ดาวน์โหลดผลลัพธ์ | ⇧ + ⌘ + D | Shift + Ctrl + D |
| ล้างเนื้อหา | ⇧ + ⌘ + K | Shift + Ctrl + K |
Privacy & Security
การแยกวิเคราะห์ JSON การจับคู่พาธ การกรองตามเงื่อนไข การจัดรูปแบบตารางทั้งหมดของคิวรี JSONPath นี้ทำงานอย่างสมบูรณ์ใน JavaScript ภายในเบราว์เซอร์ของคุณ ข้อมูล JSON ที่คุณป้อน พาธที่คิวรี และผลลัพธ์ที่ส่งคืนจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ใดๆ และจะไม่ถูกบันทึก แคช หรือจัดเก็บไว้ในคลาวด์ ประวัติการป้อนจะถูกเก็บไว้ใน localStorage ในเครื่องของเบราว์เซอร์ของคุณเท่านั้น (สูงสุด 200 รายการ) คุณสามารถลบได้ผ่านปุ่มล้างหรือล้างข้อมูลเบราว์เซอร์ สามารถใช้งานได้อย่างมั่นใจกับฟิลด์ธุรกิจที่ละเอียดอ่อน ข้อมูลอินเทอร์เฟซที่ยังไม่เปิดตัว บันทึกสภาพแวดล้อมการผลิต ไม่มีความเสี่ยงในการรั่วไหลของข้อมูล
Authoritative References
- บีบอัด JSON
- แปลง CSV เป็น JSON
- JSON เป็น CSV
- JSON Diff
- JSON Escape / Unescape
- แฟลตเทน JSON
- จัดรูปแบบ JSON
- เครื่องมือสร้าง JSON
- คิวรี JSONPath
- รวม JSON
- ซ่อมแซม JSON
- ตัวตรวจสอบ JSON Schema
- เรียง JSON
- JSON Stringify
- JSON เป็น HTML
- JSON เป็น Java
- JSON เป็น Markdown
- แปลง JSON เป็น SQL
- JSON เป็น TOML
- JSON เป็น TypeScript
- แปลง XML เป็น JSON
- แปลง JSON เป็น XML
- YAML เป็น JSON
- JSON → YAML
- JSON เป็น Go
- JSON เป็น Rust
- JSON to Swift
- JSON เป็น C#
- JSON เป็น C++
- JSON เป็น PHP
- JSON เป็น Python