tools / json
json/
Định dạng, nén, kiểm tra, escape JSON và sắp xếp khóa, kiểm tra ngay khi bạn gõ.
Đầu vào
Kết quả
Câu hỏi thường gặp
JSON báo "Unexpected token" hoặc "JSON không hợp lệ" thì phải làm sao
Phần lớn là do văn bản được viết như literal của JavaScript hoặc Python chứ không phải JSON chuẩn. Những lỗi thường gặp: dấu nháy đơn, khóa không đặt trong dấu nháy kép, thừa dấu phẩy sau phần tử cuối, có chú thích // hoặc /* */, NaN hoặc undefined (True, None của Python cũng tương tự), và dấu nháy cong sao chép từ ứng dụng nhắn tin. Vị trí báo lỗi là chỗ trình phân tích bị kẹt, nguyên nhân thật có thể nằm ngay phía trước đó.
Đọc dòng và cột trong thông báo lỗi thế nào, vì sao phần phía sau là tiếng Anh
Dòng và cột đều bắt đầu từ 1. Vị trí ưu tiên lấy từ thông báo lỗi của trình duyệt; khi trình duyệt không cung cấp (ví dụ Safari), công cụ sẽ tự quét để tìm ký tự sai đầu tiên. Phần tiếng Anh sau dấu "·" là nguyên văn thông báo của JSON.parse trong trình duyệt, mỗi trình duyệt diễn đạt một khác nên ở đây không dịch.
Làm sao biến \u4e2d\u6587 trong JSON thành văn bản đọc được
Chỉ cần bấm "Định dạng" hoặc "Nén". Công cụ đọc JSON bằng JSON.parse rồi xuất ra lại, các \uXXXX trong chuỗi sẽ được khôi phục thành ký tự thật. Nếu cả đoạn là một chuỗi escape (bọc trong dấu nháy và đầy các \"), hãy chọn "Unescape" trước. Chiều ngược lại, chuyển ký tự không phải ASCII thành dạng \u thì ở đây không làm được, "Escape" chỉ xử lý các ký tự như dấu nháy, dấu gạch chéo ngược và xuống dòng.
"Escape" và "Unescape" khác nhau thế nào, làm sao khôi phục chuỗi đầy \" mà API trả về
"Escape" biến văn bản thành dạng có thể đặt trong một chuỗi (thêm dấu gạch chéo ngược trước dấu nháy, xuống dòng thành \n), kết quả không có dấu nháy bọc hai bên; "Unescape" làm ngược lại. Khi API trả về nội dung đầy \", hãy chọn "Unescape", có dấu nháy bọc ngoài hay không đều được. Khôi phục xong, bấm "⇄ Dùng kết quả làm đầu vào" thì công cụ sẽ tự chuyển sang "Định dạng" để bạn tiếp tục chỉnh.
Sau khi định dạng, số dài (như ID snowflake) bị đổi ở cuối thì làm sao
Số nguyên lớn hơn 2^53 (9007199254740991) thì JavaScript không biểu diễn chính xác được, JSON.parse đã mất độ chính xác ngay khi đọc vào, vài chữ số cuối thường thành 0. Khi định dạng hoặc nén, trang sẽ hiện cảnh báo và liệt kê tối đa 5 vị trí. Muốn giữ nguyên, hãy để nguồn dữ liệu xuất các ID kiểu này dưới dạng chuỗi (đặt trong dấu nháy kép).
Sau khi định dạng, 1.0 thành 1 và khóa trùng lặp biến mất, vì sao
Định dạng và nén là phân tích rồi xuất lại, nên số được viết lại theo cách của JavaScript: 1.0 thành 1, 1E2 thành 100, 0.10 thành 0.1, -0 thành 0, còn giá trị không đổi. Nếu trong cùng một đối tượng có khóa trùng, chỉ giữ lại khóa cuối cùng và không có cảnh báo.
Tích chọn "Sắp xếp khóa" thì sắp xếp theo cách nào, mảng có bị đổi không
Khóa ở mọi cấp đều được sắp theo mã ký tự từ nhỏ đến lớn, chữ hoa đứng trước chữ thường, còn các hệ chữ khác (như chữ Hán) sắp theo mã chứ không theo bảng chữ cái; thứ tự phần tử trong mảng không đổi. Khóa toàn chữ số (như "2", "10") là ngoại lệ: JavaScript quy định chúng luôn đứng đầu và xếp theo giá trị số, nên kể cả khi không tích chọn sắp xếp khóa chúng vẫn bị dời lên đầu.
Xử lý được JSON lớn đến đâu, dữ liệu có bị tải lên không
Không có giới hạn dung lượng cố định. Khi dữ liệu vượt quá 1 triệu ký tự, việc xử lý sẽ trễ khoảng 0,6 giây sau khi bạn gõ, và văn bản quá lớn chủ yếu bị giới hạn bởi bộ nhớ của trình duyệt. Mọi xử lý đều chạy trong trình duyệt, trang không gửi nội dung lên máy chủ và cũng không lưu những gì bạn nhập.