Trình xác thực JSON
Kiểm tra văn bản có tuân theo cú pháp JSON chuẩn hay không và hiểu lý do input được chấp nhận hoặc từ chối.
Kiểm tra JSON trước khi dùng dữ liệu
Một dấu ngoặc kép, dấu phẩy hoặc dấu ngoặc bị thiếu có thể làm API, configuration hay build step dừng lại. Validator này thử parse source text như JSON để tách lỗi syntax khỏi các bước application validation tiếp theo.
Validation ở đây chỉ có nghĩa là thử parse text thành một JSON value. Parse thành công cho biết cấu trúc được JSON chấp nhận; điều đó không chứng minh required field, business rule hoặc JSON Schema đã đúng.
Khi payload đi qua nhiều service, kiểm tra syntax sớm giúp thu hẹp phạm vi debugging. Hãy xem quote, comma, escape và nesting trước, sau đó chạy các schema và domain check riêng của project.
Trang này phù hợp để kiểm tra request body, fixture, cài đặt được export hoặc configuration snippet. Xóa token, password và dữ liệu cá nhân khỏi test copy, đồng thời tuân thủ privacy policy của tổ chức.
Syntax và ý nghĩa dữ liệu là hai việc khác nhau
JSON chuẩn có object, array, string, number, true, false và null. Property name và string dùng double quote, các member được ngăn cách bằng comma, bracket phải đóng đúng thứ tự. Comment và trailing comma không thuộc JSON grammar chuẩn.
Câu hỏi của validator rất giới hạn: source có parse được thành một JSON value không? Tool không sửa source, không chạy code, không gọi API và không quyết định value có phù hợp với application hay không. Hãy tách schema và domain check.
Whitespace thường được phép để dễ đọc, nhưng character bên trong string là dữ liệu. Kiểm tra escape sequence, newline, Unicode và encoding bằng cùng parser mà production consumer sử dụng.
Một JSON document hợp lệ không làm transport tự động hợp lệ. HTTP header, content type, authentication, compression và size limit thuộc các layer khác.
Cách validate JSON
- Dán một JSON value hoàn chỉnh vào source field. Xóa comment, code fence và wrapper của programming language khỏi test copy.
- Chạy validator rồi đọc status và diagnostic. Kiểm tra token trước và sau marker vì nguyên nhân thật có thể nằm sớm hơn vị trí được chỉ ra.
- Nếu bị từ chối, kiểm tra quote, comma, bracket, escape và nesting. Với document lớn, tách phần nhỏ để tìm failing section rồi gửi lại bản đã sửa.
- Sau khi syntax pass, chạy schema, type, required property, range, permission và business rule check của project. Không ghi các kết quả này như syntax result.
- Lưu original payload và redacted copy riêng biệt. Không đặt secret trong public example, screenshot hoặc URL.
- Kiểm tra cuối bằng parser và encoding giống consumer thực tế. Các language hoặc library khác nhau có thể xử lý duplicate key và number precision khác nhau.
Phương pháp validation
- Đọc grammar
Validator dùng quy tắc token, quote, delimiter và nesting để thử parse toàn bộ source thành một JSON value.
- Báo kết quả
Valid nghĩa là parsing hoàn tất. Failure nghĩa là source không khớp với syntax mà tool hiểu được.
- Tách các check sau
Schema, range, permission và domain là semantic check, cần rule và evidence riêng.
Nếu tool không document exact line number hoặc error message, đừng tự suy đoán. Khi cần, hãy kiểm tra lại bằng runtime thật.
Đọc kết quả
Valid nghĩa là text được chấp nhận như JSON syntax. Tiếp theo hãy xem value và chạy schema hoặc application validation.
Invalid nghĩa là parsing đã dừng. Kiểm tra character trước và sau vị trí được chỉ ra, không chỉ sửa marker.
Nếu syntax valid nhưng request fail, hãy kiểm tra content type, endpoint, authentication, schema và business rule. Syntax success không phải network success.
Nếu message chung chung, thu nhỏ input để tìm failing section. Kết quả đổi sau khi thêm hoặc xóa property chỉ là manh mối điều tra, không phải policy chung của mọi parser.
Lỗi thường gặp
Dán JavaScript có single quote, comment hoặc trailing comma là lỗi phổ biến. Hãy chuyển sang standard JSON.
Coi valid result là schema validation là sai. Required field, range và permission phải được kiểm tra riêng.
Chỉ sửa character ở error marker có thể không đủ vì quote hoặc comma bị thiếu nằm ở phía trước.
Đừng coi JSON là Python dictionary, YAML hay JavaScript object. Hãy dùng JSON grammar được document.
Clipboard có thể đưa vào smart quote hoặc control character ẩn. Nếu kết quả khác nhau, hãy xem source bằng plain text editor.
Giới hạn
Input được document là một JSON text field. Điều này không chứng minh hỗ trợ JSON Schema, business rule, file processing hay mọi parser edge case.
Duplicate key, number rất lớn, document size và encoding nên được test riêng khi cần. Policy có thể khác theo library.
Checker không làm payload độc hại trở nên an toàn. Server vẫn cần size limit, nesting limit, resource limit và security review.
Hãy document production runtime, library version và error policy riêng; kết quả chung của trang không thay thế evidence đó.
Examples
Chấp nhận object đơn giản
Object cơ bản này có phải valid JSON không?
Gửi toàn bộ object.
Quoted name, string và boolean tạo thành valid object structure.
Từ chối tên không quote
Vì sao unquoted property name invalid?
Gửi source và xem failure.
Trong JSON chuẩn, member name phải là string có double quote.
Chấp nhận dữ liệu lồng nhau
Object có thể chứa array của object không?
Gửi nested value như một document.
Array, object, number, comma và bracket tạo một JSON structure hợp lệ.
Từ chối trailing comma
Comma sau member cuối có tác dụng gì?
Gửi object có trailing comma.
JSON chuẩn không cho phép trailing comma. Xóa comma rồi kiểm tra lại.
Dùng null
null có phải valid JSON value không?
Gửi object và đọc status.
null là JSON value chuẩn. Contract của project quyết định ý nghĩa application.
Từ chối thiếu bracket
Vì sao opening bracket phải được đóng?
Gửi structure không cân bằng.
Array được mở bằng [ nhưng không đóng bằng ]. Sửa nesting trước khi dùng data.
Frequently asked questions
Valid JSON có nghĩa data của application cũng valid không?
Không. Nó chỉ nói text có thể parse. Required field, type, range, status và business rule cần check riêng.
Validator có tự sửa source không?
Hãy dùng như checker. Tự sửa source, lưu diff rồi gửi lại copy đã kiểm tra.
Comment có được phép không?
JSON chuẩn không có comment. Giữ comment ở source format khác, tạo strict JSON trong build step và validate output.
Tại sao single quote bị từ chối?
Tên và string trong JSON chuẩn dùng double quote. Hãy dùng JSON serializer thay vì đổi quote thủ công.
Tool có kiểm tra JSON Schema không?
Không. Hãy chạy schema validator với schema và draft version đúng, rồi ghi kết quả riêng với syntax result.
Top-level value có thể là array không?
JSON cho phép array làm top-level value. Tuy nhiên endpoint có thể yêu cầu object, nên hãy test endpoint contract riêng.
Duplicate key có luôn bị từ chối không?
Không có policy chung. Parser có thể giữ giá trị đầu, cuối hoặc báo error. Tránh duplicate name và test consumer thật.
Sau khi validation pass cần làm gì?
Chạy schema, permission, range và integration test. Kiểm tra content type, encoding, size, timeout, logging rồi thử redacted payload ở staging.
