Chuyển đến nội dung

Công Cụ Định Dạng & Xác Thực JSON

Dán JSON và in đẹp với 2, 4 hoặc 8 khoảng trắng, nén thành một dòng, hoặc chỉ kiểm tra xem nó có phân tích được không. JSON hợp lệ được trả về có tô màu kèm kích thước trước và sau; JSON không hợp lệ được trả về cùng thông báo lỗi của chính trình duyệt bạn. Miễn phí, không cần đăng ký, và không có gì bạn dán rời khỏi trình duyệt.

0 dòng · 0 byte

Cách Sử Dụng Công Cụ Định Dạng JSON

  1. 1. Dán JSON của bạn. Từ một giá trị đơn lẻ đến một phản hồi API lớn. Ô nhập đếm số dòng và số byte khi bạn gõ.
  2. 2. Chọn khoảng thụt lề. Chọn 2, 4 hoặc 8 khoảng trắng. Cài đặt này chỉ ảnh hưởng đến Định Dạng.
  3. 3. Chọn một hành động. Định Dạng in đẹp, Thu Nhỏ loại bỏ mọi khoảng trắng và ngắt dòng không bắt buộc, còn Chỉ xác thực kiểm tra cú pháp và hiển thị kết quả xanh hoặc đỏ mà không tạo đầu ra.
  4. 4. Đọc kết quả. JSON hợp lệ được hiển thị có tô màu (khóa màu tím, chuỗi màu xanh lá, số màu xanh dương, true và false màu cam, null màu đỏ) cùng kích thước đầu vào, kích thước đầu ra và phần trăm thay đổi. JSON không hợp lệ hiển thị thông báo của trình phân tích. Sao Chép Kết Quả sao chép những gì bạn thấy.

JSON Hợp Lệ Là Gì

Công cụ đưa văn bản của bạn cho bộ phân tích JSON nghiêm ngặt của engine JavaScript, nên nó chỉ chấp nhận những gì chuẩn của định dạng, RFC 8259 (cùng ngữ pháp với ECMA-404), quy định — và không hơn thế. Điều này nghiêm ngặt hơn một đối tượng JavaScript, đó là lý do mã chạy được trong một script thường thất bại ở đây. Những nguyên nhân thường gặp:

Những lý do thường gặp khiến JSON không phân tích được
LỗiVí dụCách sửa
Dấu phẩy thừa{"a": 1,}Xóa dấu phẩy cuối.
Dấu nháy đơn{'a': 1}Dùng dấu nháy kép cho mọi khóa và chuỗi.
Khóa không có dấu nháy{a: 1}Thêm dấu nháy: {"a": 1}.
Chú thích// note hoặc /* note */JSON không có chú thích; hãy xóa chúng.
Số 0 đứng đầu hoặc dấu cộng007, +5Viết 7 và 5.
NaN, Infinity hoặc undefined{"x": NaN}Không tồn tại trong JSON; dùng null hoặc một chuỗi.
Ngắt dòng thô trong chuỗimột dòng mới bên trong dấu nháyViết nó thành hai ký tự \n.
Thiếu dấu phẩy{"a": 1 "b": 2}Phân tách các thành viên bằng dấu phẩy.

Chỉ một 42, "text" hoặc null cũng hợp lệ: từ RFC 7159, một văn bản JSON có thể là bất kỳ giá trị nào, không chỉ một đối tượng hay mảng. True hoặc NULL viết hoa thì không — ba từ khóa đều viết thường.

Định Dạng Thay Đổi Những Gì

Công cụ này phân tích JSON của bạn rồi ghi lại, nên kết quả là cùng dữ liệu với bố cục mới, không phải bản sao từng ký tự của văn bản bạn. Bốn điều có thể khác, và hai điều đầu quan trọng nếu bạn định dạng JSON để đưa vào một hệ thống khác:

  • Số nguyên lớn bị mất độ chính xác. Số JavaScript là số thực 64-bit, nên các số nguyên lớn hơn 9.007.199.254.740.991 (253 − 1) bị làm tròn. 9007199254740993 sẽ thành 9007199254740992. Nếu ID của bạn lớn đến vậy, hãy giữ chúng dưới dạng chuỗi.
  • Khóa trùng lặp bị gộp. RFC 8259 nói tên nên là duy nhất nhưng không cấm lặp lại; công cụ này giữ giá trị cuối cùng và bỏ các giá trị trước đó.
  • Khóa dạng số đứng trước. Trong JavaScript, các khóa như "1" và "2" được liệt kê trước các khóa khác theo thứ tự tăng dần, nên {"b":1,"2":1,"1":1} được ghi lại thành {"1":1,"2":1,"b":1}. Các khóa khác giữ thứ tự của bạn.
  • Số và ký tự thoát được viết lại. 1.50 thành 1.5, 1e2 thành 100, và \u00e9 thành é.

Ví Dụ Minh Họa

Lấy đầu vào 119 byte này, gồm một ID lớn, một số 0 cuối, một số mũ và một ký tự thoát:

Đầu vào

{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}

Định Dạng với 2 khoảng trắng ghi ra 156 byte (+31%), mỗi thành viên một dòng, với "id": 9007199254740992, "price": 1.5, "x": 100 và "name": "café". Thu Nhỏ ghi ra 114 byte (-4%) trên một dòng, với cùng các thay đổi. Không có gì khác về dữ liệu. Kích thước tính bằng byte UTF-8, nên é được tính là hai.

Bạn Cần Công Cụ Nào?

Trang này dành cho chính JSON. Nếu dữ liệu của bạn ở định dạng khác, có công cụ đi kèm làm việc đó: CSV Sang JSON cho bảng tính, các bộ chuyển đổi YAML to JSON và XML to JSON đang được lên kế hoạch, Công Cụ Định Dạng XML cho tài liệu XML và HTML Formatter cho đánh dấu.

Câu Hỏi Thường Gặp

Công cụ định dạng JSON làm gì?
Nó phân tích JSON rồi ghi lại với thụt lề nhất quán và mỗi thành viên một dòng, nên một phản hồi API đã thu nhỏ trở nên dễ đọc. Vì phải phân tích trước, nó đồng thời là công cụ xác thực: văn bản không phải JSON hợp lệ sẽ tạo ra lỗi thay vì kết quả.
Vì sao JSON của tôi bị báo là không hợp lệ?
Thường là một trong các lỗi trong bảng trên: dấu phẩy thừa, dấu nháy đơn, khóa không có dấu nháy, chú thích hoặc thiếu dấu phẩy. Thông báo đến từ chính trình phân tích JSON của trình duyệt bạn, nên cách diễn đạt khác nhau giữa Chrome, Firefox và Safari, và có thể có hoặc không có vị trí; hãy tìm lỗi tại hoặc ngay trước điểm mà nó nêu.
Tôi có thể định dạng JSON có chú thích, JSON5 hoặc JSONC không?
Không. Chú thích, dấu phẩy thừa và dấu nháy đơn không thuộc JSON, và công cụ này dùng trình phân tích nghiêm ngặt. Hãy xóa chúng trước, hoặc chuyển tệp sang JSON thuần trong trình soạn thảo của bạn.
Sự khác nhau giữa Định Dạng, Thu Nhỏ và Chỉ xác thực là gì?
Định Dạng thêm thụt lề và ngắt dòng, Thu Nhỏ loại bỏ mọi khoảng trắng không bắt buộc để có văn bản nhỏ nhất, còn Chỉ xác thực kiểm tra cú pháp và hiển thị kết quả mà không có đầu ra. Cả ba đều dùng cùng một trình phân tích, nên tài liệu nào qua được một cái thì qua được tất cả.
Vì sao một số trong JSON của tôi bị thay đổi?
Công cụ đọc số như số thực JavaScript và in lại dưới dạng ngắn nhất của JavaScript. Điều đó biến 1.50 thành 1.5 và 1e2 thành 100, và làm tròn số nguyên lớn hơn 253 − 1. Hãy lưu các mã định danh rất lớn dưới dạng chuỗi nếu chúng phải được giữ nguyên chính xác.
JSON của tôi có được tải lên bất cứ đâu không?
Không. Việc phân tích, định dạng và tô màu đều chạy trong trình duyệt của bạn, và văn bản bạn dán không được gửi đến CitationEasy hay bất kỳ ai khác. Hãy xóa ô nhập khi bạn xong việc trên máy tính dùng chung.
Tôi có thể sắp xếp khóa hoặc dùng tab để thụt lề không?
Không ở đây. Lựa chọn thụt lề là 2, 4 hoặc 8 khoảng trắng, và các khóa giữ thứ tự mà đầu vào của bạn đưa ra, ngoại trừ các khóa dạng số được đưa lên trước như đã mô tả ở trên.

Công Cụ Liên Quan

Thêm trong Dữ liệu, ngôn ngữ đánh dấu và mã