UTILS.
100% trong trình duyệt
⊞}

Làm phẳng / Khôi phục JSON

Làm phẳng JSON lồng nhau thành các khóa dạng dấu chấm, hoặc dựng lại đối tượng lồng nhau từ các khóa phẳng.

— kết quả hiển thị ở đây —

Về công cụ này

JSON Flatten / Unflatten là công cụ miễn phí, chạy trong trình duyệt, chuyển JSON lồng nhau thành một bản đồ một-cấp gồm các khóa dạng dấu chấm, và dựng lại cấu trúc lồng nhau từ những khóa phẳng đó. Hãy dán JSON và chọn một hướng: Flatten thu gọn mọi đường dẫn thành một đối tượng phẳng duy nhất (ví dụ user.name hoặc user.roles.0), còn Unflatten mở rộng các khóa dạng dấu chấm trở lại thành các đối tượng và mảng lồng nhau.

Cả hai hướng đều phân tích đầu vào của bạn bằng chính bộ phân tích JSON của trình duyệt và in đẹp kết quả với thụt lề hai dấu cách. Đối tượng và mảng được duyệt đệ quy, các phần tử mảng giữ chỉ số của chúng trong đường dẫn, và các giá trị lá — chuỗi, số, boolean, null, và đối tượng hay mảng rỗng — được giữ nguyên. JSON không hợp lệ hiển thị một lỗi inline thay vì đầu ra, và nút sao chép đưa kết quả vào bộ nhớ tạm.

Mọi thứ chạy cục bộ bằng JavaScript: không tải lên, không tài khoản, không theo dõi, và hoạt động offline. Flatten tiện lợi để biến cấu hình thành các cặp khóa/giá trị phẳng như biến môi trường hay tệp thông điệp i18n, để diff các payload lồng nhau sâu, hay để định hình lại phản hồi API, còn unflatten đảo ngược chính phép ánh xạ đó.

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

Mảng được xử lý như thế nào?
Các phần tử mảng dùng chỉ số của chúng trong khóa, như items.0.name. Khi unflatten, bất kỳ đoạn đường dẫn nào toàn chữ số đều được coi là chỉ số mảng, nên những phần đó được dựng lại thành mảng.
Dữ liệu của tôi có bị tải lên không?
Không. Việc phân tích và chuyển đổi chạy hoàn toàn trong JavaScript của trình duyệt, không có gì gửi đến máy chủ, và công cụ vẫn hoạt động offline.
Chuyện gì xảy ra với đối tượng và mảng rỗng?
Chúng được coi là các giá trị lá và giữ nguyên tại khóa của mình, nên một {} hoặc [] rỗng vẫn sống sót qua flatten mà không đổi, thay vì bị mở rộng thành các khóa sâu hơn.
Flatten rồi unflatten có luôn trả về JSON gốc không?
Gần như luôn, nhưng có hai trường hợp khác biệt: một khóa vốn đã chứa dấu chấm sẽ tách thành cấu trúc lồng phụ khi unflatten, và một khóa đối tượng chỉ gồm chữ số sẽ được dựng lại thành chỉ số mảng thay vì một khóa đối tượng.

Công cụ khác