Định dạng JSON API
Làm đẹp JSON với thụt lề 0-8 dấu cách hoặc tab, rút gọn (minify) hoặc sắp xếp key theo bảng chữ cái. Báo lỗi cú pháp kèm dòng và cột.
Gửi JSON qua trường json (nên là chuỗi) hoặc body thô text/plain, API trả về chuỗi đã định dạng trong result cùng độ dài characters. Mặc định thụt lề 2 dấu cách; đặt indent từ 0 đến 8 hoặc tab, hoặc dùng minify=true để bỏ toàn bộ khoảng trắng.
Với sort_keys=true, key của mọi object ở mọi cấp được sắp xếp theo bảng chữ cái, giúp việc so sánh và băm JSON luôn ổn định. Thứ tự phần tử trong mảng được giữ nguyên.
Nếu dữ liệu không phải JSON hợp lệ, API trả về valid: false kèm parse_error (thông báo, vị trí, dòng và cột nếu có) thay vì lỗi HTTP. Body request tối đa 5 MB.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
json | body | string | có | JSON cần định dạng, dạng chuỗi (hoặc giá trị JSON bất kỳ). Cũng nhận body thô text/plain. | |
indent | body|query | number | không | 2 | Số dấu cách mỗi cấp (0-8), hoặc tab. |
minify | body|query | boolean | không | false | Xuất JSON rút gọn, không khoảng trắng. |
sort_keys | body|query | boolean | không | false | Sắp xếp key của object theo bảng chữ cái ở mọi cấp. |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/json-format" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"json":"{\"b\":2,\"a\":{\"d\":[1,2],\"c\":true}}","sort_keys":true}'const res = await fetch('https://apibox.io.vn/v1/json-format', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"json": "{\"b\":2,\"a\":{\"d\":[1,2],\"c\":true}}",
"sort_keys": true
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/json-format",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"json": "{\"b\":2,\"a\":{\"d\":[1,2],\"c\":true}}", "sort_keys": True},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/json-format');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"json":"{\\"b\\":2,\\"a\\":{\\"d\\":[1,2],\\"c\\":true}}","sort_keys":true}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"valid": true,
"result": "{\n \"a\": {\n \"c\": true,\n \"d\": [\n 1,\n 2\n ]\n },\n \"b\": 2\n}",
"characters": 75
}
Ứng dụng
- Làm đẹp response API bị rút gọn để dễ debug
- Rút gọn JSON trước khi lưu trữ hoặc gửi đi
- Chuẩn hoá JSON với key đã sắp xếp để so sánh và băm ổn định
- Định dạng file cấu hình JSON trong script và CI
Hỏi đáp
Làm sao rút gọn (minify) JSON?
Gửi minify=true. Kết quả không còn dấu cách hay xuống dòng.
Có thụt lề bằng tab được không?
Được, đặt indent=tab. Giá trị số từ 0 đến 8 là số dấu cách (mặc định 2).
Nếu JSON không hợp lệ thì sao?
API trả về {"valid": false, "parse_error": {...}} gồm thông báo lỗi và vị trí, dòng, cột nếu có.
API liên quan
Kiểm tra JSON
Kiểm tra cú pháp JSON, báo đúng dòng và cột bị lỗi, và validate dữ liệu theo JSON Schema (draft 4, 7, 2019-09 hoặc 2020-12).
CSVCSV sang JSON
Chuyển CSV thành mảng object JSON theo dòng tiêu đề, tự nhận dấu phân cách, tự chuyển số và boolean, báo lỗi từng dòng.
J→CJSON sang CSV
Chuyển mảng JSON gồm object hoặc mảng thành CSV có dòng tiêu đề, tuỳ chọn dấu phân cách, trả về JSON hoặc file text/csv để tải về.