Trình Xem Cây JSON

Dán dữ liệu JSON bên dưới và xem nó dưới dạng cây tương tác có thể thu gọn với giá trị màu.

Cây

Cách hoạt động

  1. Dán JSON của bạn: đặt bất kỳ chuỗi JSON nào, đối tượng, mảng, cấu trúc lồng nhau, vào trường nhập.
  2. Khám phá cây: JSON hiển thị dưới dạng cây tương tác có thể thu gọn. Nhấp vào một nút để mở rộng hoặc thu gọn các nút con.
  3. Điều hướng và kiểm tra: tìm các khóa hoặc giá trị cụ thể bằng cách mở rộng các nhánh. Dữ liệu lồng sâu trở nên dễ đọc trong nháy mắt.

Tại sao sử dụng trình xem cây JSON?

JSON thô từ API, tệp cấu hình và cơ sở dữ liệu nổi tiếng là khó đọc khi chứa các cấu trúc lồng sâu. Trình xem cây JSON biến văn bản phẳng thành bản đồ trực quan phân cấp, nơi bạn có thể thấy ngay hình dáng của dữ liệu, phát hiện các khóa bị thiếu, theo dõi các đường dẫn lồng nhau và hiểu cấu trúc mà không phải phân tích tinh thần các dấu ngoặc và dấu phẩy. Đây là công cụ thiết yếu để gỡ lỗi API, khám phá dữ liệu và hiểu lược đồ.

Tính năng

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

Có giới hạn kích thước cho đầu vào JSON không?

Công cụ không áp đặt giới hạn cứng. Hiệu suất phụ thuộc vào trình duyệt và thiết bị của bạn. Các tệp JSON rất lớn (nhiều MB) có thể hiển thị chậm, nhưng phản hồi API và tệp cấu hình thông thường hoạt động tức thì.

Tôi có thể chỉnh sửa JSON trong chế độ xem cây không?

Công cụ này tập trung vào trực quan hóa và khám phá cấu trúc JSON. Để chỉnh sửa JSON, hãy sử dụng công cụ Trình định dạng JSON, cung cấp trình chỉnh sửa đầy đủ bên cạnh đầu ra đã định dạng.

Có hỗ trợ JSON với chú thích (JSONC) không?

JSON tiêu chuẩn không cho phép chú thích, và hầu hết các trình phân tích (bao gồm công cụ này) báo chúng là lỗi. Xóa chú thích trước khi dán, hoặc sử dụng trình chỉnh sửa tương thích JSONC cho JSON có chú thích.

JSON, định dạng dữ liệu đã chiến thắng

Douglas Crockford đã công bố JSON trên json.org vào năm 2001 như một giải pháp thay thế nhẹ cho XML, lấy cú pháp trực tiếp từ các literal đối tượng của JavaScript. Định dạng này lần đầu tiên được tiêu chuẩn hóa thành Internet-Draft IETF trong RFC 4627 (tháng 7 năm 2006), sau đó được sửa đổi thành RFC 7159 (tháng 3 năm 2014), và cuối cùng được thiết lập trong RFC 8259 (tháng 12 năm 2017), đây là tiêu chuẩn hiện tại và được giữ phù hợp với ECMA-404 (phiên bản 1 tháng 10 năm 2013, phiên bản 2 tháng 12 năm 2017). RFC 8259 đã thêm một yêu cầu quan trọng: mã hóa ở tầng mạng phải là UTF-8. Hai đặc tả bổ sung hoàn thiện hệ sinh thái: RFC 6901 «JSON Pointer» (tháng 4 năm 2013) định nghĩa cú pháp /store/book/0/title để định địa chỉ các nút bên trong tài liệu, và RFC 6902 «JSON Patch» định nghĩa một tài liệu JSON mô tả các thay đổi để áp dụng cho một tài liệu JSON khác. JSON Schema (bản nháp IETF hiện tại 2020-12) thêm xác thực. Mọi thứ khác được xây dựng dựa trên đó, JSONC cho các bình luận tệp cấu hình, JSON5 cho cú pháp lỏng lẻo, NDJSON cho streaming, đã đến sau.

Sáu kiểu giá trị JSON (và điều gì còn thiếu)

RFC 8259 §3 định nghĩa chính xác sáu kiểu giá trị. Không có gì khác.

Những gì JSON không có: kiểu ngày (quy ước là chuỗi ISO 8601 với múi giờ), bình luận (sử dụng trường siêu dữ liệu riêng), dấu phẩy cuối, chuỗi nháy đơn, số thập lục phân, undefined, NaN, hoặc Infinity. Bất kỳ điều nào trong số đó sẽ khiến JSON.parse ném SyntaxError.

JSON nghiêm ngặt, JSONC, JSON5: ai là ai

JSON nghiêm ngặt (RFC 8259) là những gì trình xem này chấp nhận: không có bình luận, không có dấu phẩy cuối, khóa nháy kép, chuỗi nháy kép. JSONC là quy ước của Microsoft được vận chuyển trong VS Code cho phép bình luận dòng // và bình luận khối /* ... */ trong khi giữ mọi thứ khác nghiêm ngặt; bạn thấy nó trong tsconfig.json, .vscode/settings.json, và gói npm jsonc-parser. JSON5 (2017, https://json5.org) là một superset thêm chuỗi nháy đơn, khóa không nháy, dấu phẩy cuối, số thập lục phân, các giá trị đặc biệt IEEE 754 (NaN, Infinity), và cả bình luận dòng và khối; gói npm json5 có khoảng 10 triệu lượt tải xuống hàng tuần. NDJSON / JSON Lines (https://jsonlines.org) là một biến thể streaming trong đó mỗi dòng là một tài liệu JSON độc lập, được sử dụng bởi các log shipper và pipeline thu nhận big-data. Loại bỏ các bình luận và dấu phẩy cuối trước khi dán nếu nguồn của bạn là JSONC hoặc JSON5.

Nơi mà trình xem cây thực sự kiếm được tiền lương của mình

Sai lầm phổ biến khi làm việc với JSON

Thêm câu hỏi thường gặp

Trình xem này có thể xử lý tệp JSON lớn đến mức nào?

Phân tích cú pháp 1 MB với JSON.parse mất khoảng 10 ms trong V8. Kết xuất 100.000 nút DOM thu gọn có thể đóng băng trình duyệt trong vài giây. Trong thực tế, trình xem này thoải mái lên đến khoảng 5 MB; vượt quá đó, mong đợi độ trễ đáng chú ý trong quá trình kết xuất. Đối với các tài liệu lớn hơn, sử dụng trình phân tích streaming như stream-json trong Web Worker, hoặc phân trang đầu vào thành các phần.

Tại sao số nguyên lớn của tôi trả về sai?

Các số JavaScript là float độ chính xác kép IEEE 754. Số nguyên lên đến 2⁵³ − 1 = 9 007 199 254 740 991 sống sót qua một chuyến đi-về chính xác; vượt quá đó, độ chính xác bị mất. ID snowflake Twitter (64-bit), ID khách hàng Stripe, ID giao dịch blockchain, và nhiều khóa thay thế cơ sở dữ liệu vượt quá giới hạn này. JSON.parse sẽ âm thầm cắt cụt. Khắc phục là nhận ID dưới dạng chuỗi (hầu hết các API hiện đại làm điều này) hoặc phân tích bằng thư viện hỗ trợ BigInt.

JSON Pointer là gì, và tôi sẽ sử dụng nó ở đâu?

RFC 6901 (tháng 4 năm 2013) định nghĩa một cú pháp đường dẫn để định địa chỉ các nút bên trong tài liệu JSON: /store/book/0/title chọn tiêu đề của cuốn sách đầu tiên trong mảng store. JSON Pointer là nền tảng của JSON Patch (RFC 6902), thể hiện các delta tài liệu dưới dạng mảng các cặp pointer-và-operation. Máy chủ API Kubernetes sử dụng JSON Patch cho các cập nhật gia tăng; API REST của GitHub và nhiều hệ thống khác cũng vậy.

NDJSON / JSON Lines có hoạt động trong trình xem này không?

Không. NDJSON là một giá trị JSON độc lập trên mỗi dòng, không có mảng bao bọc. JSON.parse trên toàn bộ tệp ném vì dòng thứ hai bắt đầu nơi đối tượng đầu tiên kết thúc. Bọc toàn bộ nội dung trong [] và thay thế mỗi dòng mới giữa các đối tượng bằng dấu phẩy, hoặc dán mỗi lần một dòng, hoặc sử dụng trình xem NDJSON chuyên dụng.

JSON của tôi có được gửi đi đâu không?

Không. JSON.parse chạy trong engine JavaScript của trình duyệt của bạn, cây được kết xuất dưới dạng các nút DOM cục bộ, và không có bản sao dữ liệu của bạn được gửi qua mạng. Điều này an toàn cho các phản hồi API với bí mật, dữ liệu khách hàng hoặc PII. Mở tab Mạng trong DevTools và dán một mẫu: bạn sẽ thấy không có yêu cầu đi ra nào trong quá trình phân tích và kết xuất.

Công cụ liên quan

Công cụ Định Dạng & Xác Thực JSON Trực Tuyến Miễn Phí Trình Trích Xuất JSON Path So Sánh JSON Trình Định Dạng & Rút Gọn XML