Trợ giúp

JSON stringify online: đối tượng JavaScript ra JSON chuẩn

Dán một đối tượng JavaScript có khóa không dấu nháy, dấu nháy đơn, chú thích hoặc dấu phẩy ở cuối, rồi nhận về JSON chuẩn đã được escape. Công cụ JSON stringify online này đọc văn bản bằng một trình phân tích và không bao giờ chạy nó như mã, nên bạn có thể dán văn bản từ bảng điều khiển trình duyệt, tệp cấu hình hoặc đoạn mã mẫu.


JSON stringify online: các bước thực hiện

  1. Dán đối tượng vào ô Đối tượng JavaScript hoặc JSON. Khi dán, kết quả được tạo ngay. Nếu bạn gõ, kết quả cập nhật sau khoảng 300 mili giây kể từ lúc bạn ngừng gõ.
  2. Ở mục Định dạng, chọn cách hiển thị kết quả: Thu gọn (mặc định, trên một dòng), 2 dấu cách hoặc 4 dấu cách.
  3. Đọc kết quả bên dưới mục JSON chuẩn. Ngay dưới đó có dòng “Đã chuyển sang JSON chuẩn.” và số ký tự.
  4. Chọn Sao chép, nằm ngay dưới kết quả. Nút sẽ hiện Đã sao chép trong giây lát.
  5. Chọn Xóa để làm trống ô và bắt đầu lại.

Một ví dụ nhỏ: bạn dán {name: 'Ana', tags: ['a', 'b',], id: 0xFF}. Khi chọn Thu gọn, kết quả là {"name":"Ana","tags":["a","b"],"id":255}.

Cú pháp JavaScript lỏng nào được đọc

Văn bản được đọc bằng trình phân tích JSON5, vốn hiểu điểm khác nhau giữa một đối tượng viết theo kiểu JavaScript và JSON. Mỗi dạng sau đây đều được chuyển đổi thay vì bị từ chối:

Dấu nháy, dấu gạch chéo ngược và ngắt dòng bên trong chuỗi được escape giúp bạn: 'He said "hi"' trở thành "He said \"hi\"". Nội dung vốn đã là JSON hợp lệ được giữ nguyên, chỉ khác ở cách trình bày mà bạn chọn.

Minify JSON online hoặc thụt lề 2 và 4 dấu cách

Menu Định dạng nằm phía trên kết quả. Thu gọn viết mọi thứ trên một dòng, không có dấu cách, phù hợp với nội dung yêu cầu, dữ liệu thử hoặc giá trị bạn sẽ dán vào bên trong một chuỗi.

2 dấu cách và 4 dấu cách cho ra bản thụt lề, dễ đọc và dễ so sánh hơn. Kết quả đổi ngay khi bạn chọn, và Sao chép lấy đúng nội dung bạn đang thấy.

Điều không đọc được và thông báo lỗi

Chỉ dữ liệu được chấp nhận, mã thì không. Khi trình phân tích dừng lại, một khung màu đỏ với tiêu đề Không đọc được nội dung này sẽ nêu lý do rõ ràng và vị trí, ví dụ “Dòng 1, cột 6”. Với {a:1 b:2}, nó dừng ở b và nhắc bạn kiểm tra xem ngay trước đó có thiếu dấu phẩy, dấu hai chấm, dấu ngoặc hay dấu nháy không. Nếu văn bản kết thúc khi một dấu ngoặc, dấu ngoặc nhọn hoặc dấu nháy vẫn còn mở, bạn sẽ thấy “Văn bản kết thúc quá sớm.”

JSON stringify JavaScript: số, khóa trùng và các thay đổi khác

Kết quả do JSON.stringify của chính trình duyệt tạo ra, nên các số là số của JavaScript. Điều này kéo theo vài hệ quả đáng biết trước khi bạn sao chép:

Nếu dữ liệu đã là JSON hợp lệ và bạn chỉ muốn thụt lề mà không đổi một chữ số nào, hãy dùng công cụ “Định dạng JSON”. Để kiểm tra JSON theo một lược đồ, hãy dùng “Trình kiểm tra JSON Schema”.

Giới hạn và quyền riêng tư


Câu hỏi thường gặp

Làm sao biến một đối tượng JavaScript thành JSON trực tuyến?

Dán đối tượng vào ô “Đối tượng JavaScript hoặc JSON”. Kết quả được tạo ngay khi dán, hoặc khoảng 300 mili giây sau khi bạn ngừng gõ, và JSON chuẩn hiện ở mục “JSON chuẩn”. Chọn “Sao chép” để mang nó đi. Chỉ dán phần đối tượng, không dán cả dòng như const data = {...};.

Làm sao đổi nháy đơn thành nháy kép trong JSON?

Dán văn bản vào. Mọi chuỗi dùng nháy đơn sẽ ra với nháy kép, và nháy kép bên trong được escape giúp bạn, nên 'He said "hi"' thành "He said \"hi\"". Chỉ chuỗi và khóa bị đổi, vì vậy dấu nháy đơn trong một chuỗi dùng nháy kép được giữ nguyên.

Làm sao bỏ dấu phẩy thừa ở cuối một JSON?

Dán văn bản vào. Dấu phẩy sau phần tử cuối của một đối tượng hoặc mảng, như trong [1, 2,], vẫn được chấp nhận khi nhập và không có mặt trong kết quả ở mục “JSON chuẩn”. Các phần khác của dữ liệu không thay đổi.

JSON có thể có khóa không dấu nháy hoặc chú thích không?

JSON chuẩn thì không: mỗi khóa và mỗi chuỗi đều cần nháy kép, và không có cú pháp chú thích. Đối tượng JavaScript và tệp cấu hình thường có cả hai. Công cụ này đọc chúng, viết khóa bằng nháy kép và bỏ chú thích, nên kết quả là JSON hợp lệ.

JSON khác JSON5 ở điểm nào?

JSON5 là tập hợp rộng hơn và lỏng hơn của JSON, cho phép khóa không dấu nháy, chuỗi nháy đơn, dấu phẩy thừa ở cuối, chú thích, số thập lục phân và vài dạng khác kiểu JavaScript. Công cụ này đọc cú pháp đó và viết ra JSON thông thường, nên một tài liệu JSON5 không chứa giá trị không được hỗ trợ sẽ thành JSON mà trình phân tích nào cũng chấp nhận.

Làm sao thu gọn JSON hoặc thụt lề 2 hay 4 dấu cách?

Dùng menu “Định dạng” phía trên kết quả. “Thu gọn”, là mặc định, cho ra một dòng không có dấu cách. 2 dấu cách và 4 dấu cách cho ra bản thụt lề. Kết quả và nội dung mà “Sao chép” lấy sẽ đổi ngay khi bạn chọn tùy chọn khác.

Vì sao hiện thông báo “Không đọc được nội dung này”?

Văn bản không phải là đối tượng, mảng hay giá trị mà trình phân tích hiểu được. Khung đỏ cho biết nơi nó dừng, ví dụ “Dòng 1, cột 6”, và điều cần kiểm tra: dấu phẩy, dấu hai chấm, dấu ngoặc hoặc dấu nháy bị thiếu ngay trước đó, hoặc một dấu ngoặc, dấu ngoặc nhọn, dấu nháy vẫn còn mở ở cuối. Các câu lệnh như const x = {...}, dấu chấm phẩy ở cuối, chuỗi dùng dấu huyền ngược, undefined, hàm và new Date() không được chấp nhận. Chỉ dán phần đối tượng.

Đoạn JavaScript tôi dán vào có bị chạy không?

Không. Văn bản được đọc bằng một trình phân tích (JSON5), không bao giờ bằng eval, nên không thứ gì bạn dán vào có thể chạy. Đó cũng là lý do mã bị từ chối: một hàm, một tên biến hay new Date() là lỗi, không phải thứ để tính toán.

Escape JSON online: xử lý dấu nháy và ngắt dòng thế nào, và có giống JSON.stringify không?

Bạn không cần làm gì. Dấu nháy, dấu gạch chéo ngược hoặc ngắt dòng trong một chuỗi được viết thành \", \\ hoặc \n ở kết quả. Công cụ không gói cả JSON vào một chuỗi đã escape để nhúng vào chuỗi khác; nó đưa bạn chính JSON. Kết quả được tạo bằng JSON.stringify nên quy tắc đầu ra giống nhau. Khác biệt nằm ở đầu vào: JSON.stringify cần một đối tượng thật trong mã, còn ở đây bạn dán văn bản của đối tượng, kể cả cú pháp lỏng. Giới hạn là 5.000.000 ký tự, và việc chuyển đổi diễn ra trên thiết bị của bạn. Số lớn, NaN, Infinity và khóa trùng thay đổi giống như với JSON.stringify.