DevToolPal
ไทย

แปลง JSON Lines เป็น JSON

แปลง JSON Lines (JSONL, NDJSON) เป็นอาร์เรย์ JSON และแปลงอาร์เรย์ JSON กลับเป็น JSON Lines พร้อมแจ้งข้อผิดพลาดตามหมายเลขบรรทัด

ทำงานในเครื่อง ไม่มีการอัปโหลด

ตัวเลือก

ทิศทาง
การเยื้อง

อินพุต

0 ตัวอักษร · 0 B

เอาต์พุต

0 ตัวอักษร · 0 B

เครื่องมือนี้ทำอะไร

JSON Lines (หรือ JSONL, NDJSON) เก็บค่า JSON หนึ่งค่าต่อบรรทัด เป็นรูปแบบยอดนิยมสำหรับล็อก การส่งออกข้อมูล API แบบสตรีม การนำเข้าจำนวนมากใน BigQuery และ Elasticsearch และชุดข้อมูลแมชชีนเลิร์นนิงอย่างไฟล์ fine-tuning ของ OpenAI เพราะโปรแกรมอ่านหรือเพิ่มเรคคอร์ดได้ทีละรายการโดยไม่ต้องโหลดทั้งไฟล์

แต่เครื่องมือจำนวนมากต้องการอาร์เรย์ JSON เดียว เครื่องมือนี้แปลง JSON Lines เป็นอาร์เรย์ JSON ที่จัดรูปแบบแล้ว และแปลงอาร์เรย์ JSON กลับเป็น JSON Lines ที่มีหนึ่งเรคคอร์ดแบบย่อต่อบรรทัด

วิธีใช้

  1. เลือก ทิศทาง: JSON Lines → JSON หรือ JSON → JSON Lines
  2. วางข้อมูล อัปโหลดไฟล์ .jsonl, .ndjson หรือ .json หรือกด ตัวอย่าง
  3. เมื่อส่งออกเป็น JSON เลือกเยื้อง 2 หรือ 4 ช่องว่าง หรือ แบบย่อ เพื่อให้อยู่ในบรรทัดเดียว
  4. คัดลอกหรือดาวน์โหลดผลลัพธ์ หรือใช้ ใช้เป็นอินพุต เพื่อแปลงกลับ

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

ตัวอย่าง

JSON Lines สามบรรทัดนี้:

{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}

จะกลายเป็นอาร์เรย์ JSON นี้:

[
  {
    "id": 1,
    "event": "signup"
  },
  {
    "id": 2,
    "event": "login"
  },
  {
    "id": 3,
    "event": "logout"
  }
]

เมื่อแปลงย้อนกลับ สมาชิกแต่ละตัวของอาร์เรย์จะถูกเขียนเป็นหนึ่งบรรทัดโดยไม่มีช่องว่าง และไฟล์จบด้วยการขึ้นบรรทัดใหม่

ควรใช้แบบไหนเมื่อใด

ใช้ JSON Lines เมื่อเรคคอร์ดถูกสร้างหรือประมวลผลทีละรายการ เช่น การเพิ่มต่อท้ายล็อก การสตรีมผลลัพธ์ การแบ่งชุดข้อมูลใหญ่ให้หลาย worker หรือการประมวลผลด้วยเครื่องมือแบบทีละบรรทัดอย่าง grep, head และ wc -l ใช้อาร์เรย์ JSON เมื่อโปรแกรมต้องการข้อมูลทั้งชุดในครั้งเดียว เช่น ไฟล์ตั้งค่า ข้อมูลทดสอบ หรือเนื้อหาการตอบกลับของ REST endpoint

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

› JSONL, NDJSON และ JSON Lines ต่างกันอย่างไร?

เป็นชื่อเรียกของรูปแบบเดียวกัน คือหนึ่งบรรทัดมีค่า JSON ที่สมบูรณ์หนึ่งค่า คั่นด้วยการขึ้นบรรทัดใหม่ JSON Lines (.jsonl) และ newline-delimited JSON (.ndjson) ต่างกันแค่ชื่อและนามสกุลไฟล์

› มีบรรทัดว่างได้ไหม?

บรรทัดว่างและการขึ้นบรรทัดใหม่ท้ายไฟล์จะถูกข้ามเมื่ออ่าน รองรับการขึ้นบรรทัดแบบ Windows (CRLF) และ BOM ของ UTF-8 ด้วย

› ไฟล์ของฉันเป็น JSON ที่จัดรูปแบบแล้ว อ็อบเจ็กต์หนึ่งยาวหลายบรรทัด ทำไมจึงผิดพลาด?

ใน JSON Lines ค่าแต่ละค่าต้องอยู่ในบรรทัดเดียว หากข้อมูลเป็นอาร์เรย์ JSON ปกติ ให้เปลี่ยนทิศทางเป็น JSON → JSON Lines หากเป็นอ็อบเจ็กต์ที่จัดรูปแบบต่อกันหลายตัว ให้ใส่ไว้ในอาร์เรย์ก่อน

› การแปลงเปลี่ยนตัวเลขหรือลำดับคีย์หรือไม่?

ไม่ ค่าและลำดับคีย์คงเดิม เปลี่ยนเพียงช่องว่าง จำนวนเต็มขนาดใหญ่มากที่เกินช่วงปลอดภัยของ JavaScript (ประมาณ 9 พันล้านล้าน) อาจสูญเสียความแม่นยำ เช่นเดียวกับเครื่องมือ JSON บนเบราว์เซอร์ทั่วไป