JSON Stringify
Doi JSON thanh chuoi de dan vao code, URL hoac truong van ban, va khi can co the phuc hoi lai thanh JSON de doc va chinh sua.
Đề xuất Liên quan
JSON Stringify va viec nhung JSON vao chuoi la gi?
JSON Stringify la qua trinh chuyen object hoac array JSON thanh bieu dien chuoi. Trong JavaScript, cach pho bien nhat la dung `JSON.stringify()`.
Trong cong viec thuc te, ket qua nay thuong con phai duoc nhung vao source code, truong TEXT trong co so du lieu, query parameter cua URL hoac mot truong JSON khac duoi dang string. Khi do, ban can escape them dau ngoac kep, xuong dong va dau backslash.
Cong cu nay thuc hien stringify tieu chuan, sau do tu dong them cap ngoac kep ben ngoai va escape cac ky tu dac biet. Parse mode lam nguoc lai de tra ve JSON de doc. Toan bo qua trinh duoc xu ly local trong trinh duyet.
Trường hợp sử dụng
- Bien JSON thanh string literal de dung trong JavaScript / Java / Python / Go
- Nhung JSON response vao mot truong string trong JSON khac
- Luu JSON string vao cot TEXT cua DB hoac gia tri Redis
- Truyen JSON qua query parameter hoac header URL
- Khoi phuc JSON da escape trong log va file config ve dang de doc
Cách Sử dụng
- Dan JSON hoac string vao khung ben trai, hoac dung sample / upload file
- Chon Stringify hoac Parse va dieu chinh dinh dang dau ra neu can
- Xem ket qua o khung ben phai, roi copy vao code, tai lieu hoac config
- Neu can, tai ve `stringified.txt` hoac `parsed.json`
Tính năng
- Hai che do: ho tro ca Stringify va Parse de chuyen doi hai chieu
- Escape tu dong: xu ly an toan dau ngoac kep, backslash, xuong dong va tab
- Nhieu dinh dang dau ra: chuoi co ngoac kep, JSON format dep hoac chuoi compact mot dong
- Phu hop de nhung vao code: ket qua de dan vao JavaScript, Java, Python va Go
- Tot cho URL va co so du lieu: de luu JSON duoi dang text hoac truyen qua service khac
- Xu ly local hoan toan: serialize va parse deu xay ra trong trinh duyet
Ví dụ mã
JavaScript: doi JSON thanh chuoi de nhung
javascriptconst data = { name: 'Alice', age: 30, tags: ['dev', 'writer'] };
const json = JSON.stringify(data, null, 2);
const embedded = '"' + json
.replace(/\\/g, '\\\\')
.replace(/"/g, '\\"')
.replace(/\n/g, '\\n')
.replace(/\r/g, '\\r')
.replace(/\t/g, '\\t') + '"';Python: escape lai bang json.dumps
pythonimport json
data = {"name": "Alice", "age": 30}
pretty = json.dumps(data, indent=2, ensure_ascii=False)
embedded = json.dumps(pretty)
restored = json.loads(json.loads(embedded))jq: bien file JSON thanh string
bashjq -Rs . data.json
echo '"{\"name\":\"Alice\"}"' | jq -r .Câu hỏi Thường gặp
JSON Stringify co giong JSON.stringify() khong?
Phan serialize co cung logic co ban, nhung cong cu nay con tu dong them ngoac kep ben ngoai va escape noi bo de nhung an toan.
Khac gi voi JSON Escape?
JSON Stringify lam viec voi toan bo object JSON; JSON Escape chi xu ly ky tu dac biet trong mot chuoi thuong.
Stringify xong co kho doc hon khong?
Khong. O che do Pretty, xuong dong va thut le van duoc giu lai de de doc.
Parse mode co phuc hoi duoc `\n` va `\"` khong?
Co. Neu dau vao duoc escape hop le, cong cu se bo ngoac kep ben ngoai va khoi phuc cac ky tu dac biet.
Co the dat ket qua vao URL ngay duoc khong?
An toan o muc JSON, nhung de dua vao URL ban van nen dung them `encodeURIComponent`.
Dung cho nested JSON duoc khong?
Duoc. Ban co the bien JSON ben trong thanh string roi dat no lam value trong JSON ben ngoai.
Co the tai ket qua ve file khong?
Co. Stringify mode tai ve `stringified.txt`, Parse mode tai ve `parsed.json`.
Du lieu co bi gui len server khong?
Khong. Moi thu deu chay local, phu hop ca voi JSON nhay cam.
Xử lý sự cố
Stringify bao loi Invalid JSON
Nguyen nhan thuong gap la dau phay cuoi, dung nhay don, key khong co ngoac kep hoac comment.
Sau Parse ket qua khong thanh JSON
Co the thieu ngoac kep ngoai cung hoac chuoi backslash ben trong bi loi. Hay kiem tra lai dau vao.
Dan vao code thi bi SyntaxError
Tu sua dau ngoac kep va backslash de lam hong ket qua. Tot nhat hay dung nguyen output cua cong cu.
JSON lon lam cham trinh duyet
Khi kich thuoc len den vai MB, bo nho se bi anh huong. Neu file lon, hay dung Node.js hoac Python.
Tieng Viet hoac emoji khong thanh `\uXXXX`
Dieu nay la binh thuong. JSON co the giu nguyen Unicode. Neu can `\uXXXX`, ban phai xu ly them sau do.
Thuật ngữ
- JSON.stringify
- Ham tich hop cua JavaScript dung de serialize gia tri JS thanh chuoi JSON.
- JSON.parse
- Ham tich hop cua JavaScript dung de doi chuoi JSON ve object hoac array.
- Serialize
- Qua trinh chuyen cau truc du lieu trong bo nho thanh dinh dang van ban co the luu tru hoac truyen di.
- Deserialize
- Qua trinh nguoc lai: phuc hoi cau truc du lieu tu chuoi.
- Escape
- Them dau backslash truoc ky tu dac biet de khong lam hong cu phap ben ngoai.
- String Literal
- Gia tri chuoi duoc dat trong dau ngoac kep trong source code.
- Double-Escape
- Escape them mot lan nua cho chuoi da duoc escape khi nhung vao lop chuoi khac.
- URL Encode
- Ma hoa ky tu dac biet cua URL thanh dang `%XX`; buoc nay tach biet voi JSON escape.
Bang doi chieu ky tu escape trong JSON Stringify
| Ky tu goc | Sau Stringify | Ten | Giai thich |
|---|---|---|---|
" | \" | Dau ngoac kep | Can escape de khong dong chuoi ben ngoai |
\ | \\ | Backslash | Ban than ky tu escape cung phai duoc nhan doi |
Xuong dong | \n | Newline | Can cho noi dung nhieu dong khi nhung vao chuoi mot dong |
Tab | \t | Tab | Escape ky tu dieu khien |
CR | \r | Carriage Return | Thuong thay trong xuong dong Windows |
/ | / | Slash | Thuong co the de nguyen |
Khac biet giua JSON.stringify va cong cu nay
| Cong cu | Dau vao | Dau ra | Tinh huong pho bien |
|---|---|---|---|
| JSON.stringify() | Object JS | Chuoi JSON chuan | API, luu file, serialize thong thuong |
| Stringify mode cua cong cu nay | JSON object | Chuoi co ngoac kep va escape de nhung | Code, DB, URL, nested JSON |
| Parse mode cua cong cu nay | Chuoi da escape | JSON object chuan | Khoi phuc JSON tu log hoac DB |
| JSON Escape | Chuoi thuong | Chuoi chi duoc escape ky tu dac biet | Lam an toan cac doan text thuong |
Authoritative References
- MDNJSON.stringify - MDN
- MDNJSON.parse - MDN
- IETFDac ta JSON RFC 8259
- WikipediaJSON - Wikipedia
- Nén JSON
- CSV sang JSON
- JSON sang CSV
- JSON Diff
- JSON Escape / Unescape
- Làm phẳng JSON
- Trình định dạng JSON
- Trinh tao JSON
- Truy vấn JSONPath
- Gộp JSON
- Sửa JSON
- Trình Xác Thực JSON Schema
- Sắp xếp JSON
- JSON Stringify
- JSON sang HTML
- JSON sang Java
- JSON sang Markdown
- JSON sang SQL
- JSON sang TOML
- JSON sang TypeScript
- XML sang JSON
- Chuyen JSON sang XML
- YAML sang JSON
- JSON → YAML
- JSON sang Go
- JSON sang Rust
- JSON sang Swift
- JSON sang C#
- JSON sang C++
- JSON sang PHP
- JSON sang Python