Văn bản & Dữ liệu

Chuyển JSON sang Java Class / Record

Chuyển JSON thành POJO Java (Lombok @Data) hoặc record — kèm kiểu lồng nhau, List generic và Jackson @JsonProperty cho khóa snake_case. Rất hợp để dựng nhanh DTO cho Spring Boot.

JSON đầu vào
Java
Output will appear here

Giới thiệu công cụ

Dựng một DTO Spring Boot từ JSON response của bên thứ ba thường là chép từng field vào một class Java, khớp kiểu bằng tay và thêm annotation. Công cụ này làm việc đó trong một bước: dán JSON và nhận lại một class hoặc record Java, kèm kiểu lồng nhau, List generic và annotation Jackson đã gắn sẵn.

Nó được thiết kế theo cách các nhóm backend thực sự làm việc. Chọn class Lombok @Data để cắt boilerplate, hoặc record bất biến cho API hiện đại. Khóa snake_case được ánh xạ sang field Java camelCase với @JsonProperty để deserialize vẫn đúng, và object JSON lồng nhau thành các kiểu sinh riêng thay vì một khối phẳng.

Cách sử dụng

  1. Copy một payload JSON mẫu — một API response hay fixture đều hợp.
  2. Dán vào khung nhập của công cụ.
  3. Chọn kiểu kết quả: class Lombok @Data hoặc record Java.
  4. Các kiểu Java được sinh hiện ngay, bao gồm cả class lồng nhau.
  5. Chỉnh tên kiểu gốc cho khớp quy ước đặt tên DTO của bạn.
  6. Copy kết quả vào package model của dự án Spring Boot.

Tính năng

  • Sinh class Lombok @Data hoặc record Java bất biến.
  • Object JSON lồng nhau thành các kiểu riêng, được tham chiếu đúng.
  • Mảng ánh xạ sang List với kiểu phần tử generic chính xác.
  • Khóa snake_case được gắn @JsonProperty để Jackson bind đúng.
  • Tên field Java tự động theo quy ước camelCase.
  • Tối ưu để tạo DTO Spring Boot nhanh.
  • Mọi việc sinh code diễn ra trong trình duyệt — JSON của bạn không bị tải lên.

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

JSON của tôi có bị gửi lên server không?

Không. Việc sinh class chạy cục bộ trong trình duyệt bằng JavaScript. Payload có thể chứa field nhạy cảm ở lại hoàn toàn trên máy bạn.

Tôi nên chọn class hay record?

Record ngắn gọn và bất biến, lý tưởng cho DTO chỉ đọc trên Java hiện đại. Class Lombok @Data thì có thể thay đổi với getter/setter được sinh, mà một số codebase và framework vẫn cần. Chọn cái khớp quy ước dự án của bạn.

Khóa JSON snake_case được xử lý thế nào?

Một khóa như created_at thành field Java createdAt gắn @JsonProperty("created_at"), nên Jackson serialize và deserialize theo tên JSON gốc trong khi code Java vẫn idiomatic.

Object và mảng lồng nhau thì sao?

Mỗi object lồng thành một kiểu sinh riêng, và mảng JSON được ánh xạ sang List với kiểu phần tử suy được làm tham số generic.

Tôi có dùng kết quả ngoài Spring Boot được không?

Có. Các class và record sinh ra là Java thuần cộng annotation Jackson và (tùy chọn) Lombok. Chúng chạy trong mọi dự án Java dùng các thư viện đó, không chỉ Spring Boot.