UTILS.
100% trong trình duyệt
🐹

JSON sang Go Struct

Chuyển một mẫu JSON thành các Go struct có kiểu với json tag. Suy ra int64, float64, bool, struct lồng nhau và slice ngay trong trình duyệt của bạn.

đầu ra

Về công cụ này

Dán một mẫu JSON và công cụ này tạo các Go struct sẵn sàng dùng, kèm đầy đủ `json:"field"` tag cho mọi khóa. Mọi thứ chạy cục bộ trong trình duyệt của bạn, nên JSON của bạn không bao giờ được tải lên đâu cả.

Bộ tạo gọi JSON.parse và duyệt kết quả theo đệ quy: chuỗi trở thành string, giá trị bool trở thành bool, số nguyên trở thành int64 và số có phần thập phân trở thành float64, null trở thành interface{}, mảng trở thành slice của kiểu phần tử đầu tiên ([]interface{} khi rỗng), và mỗi đối tượng trở thành một struct lồng nhau có tên riêng. Tên trường được chuyển thành PascalCase xuất khẩu (với các từ viết tắt thông dụng như ID và URL viết hoa) trong khi khóa gốc được giữ trong json tag.

Dùng nó để khởi tạo nhanh các mô hình Go từ một phản hồi API hoặc tệp cấu hình, rồi chỉnh kiểu bằng tay ở nơi cần. Vì JSON không có kiểu số nguyên riêng, một giá trị như 1.0 được đọc là số nguyên; thêm dấu thập phân (1.5) nếu bạn muốn float64.

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

Số được gán kiểu thế nào?
Một giá trị đã phân tích không có phần thập phân trở thành int64; một giá trị có phần thập phân trở thành float64. JSON không phân biệt được 1 với 1.0, nên cả hai đều đọc là int64.
Đối tượng lồng nhau và mảng thì sao?
Mỗi đối tượng trở thành một struct riêng có tên; mảng trở thành slice của kiểu phần tử đầu tiên, hoặc []interface{} nếu mảng rỗng hoặc phần tử là null.
Tên trường có hợp lệ trong Go không?
Các khóa được chuyển thành PascalCase xuất khẩu và khóa gốc được giữ trong một json tag, nên JSON vẫn khứ hồi đúng ngay cả với tên như user_id hay first-name.
JSON của tôi có được gửi đến máy chủ không?
Không. Việc phân tích và tạo mã diễn ra hoàn toàn trong trình duyệt của bạn; không có gì được tải lên hay lưu trữ.

Công cụ khác