Có lý do kỹ thuật nào khiến các trường chưa được xuất bản không được bao gồm bởi mã hóa/json không? Nếu không và đó là một quyết định tùy ý có thể có thêm một tùy chọn cửa sau (nói '+') để bao gồm mặc dù không được báo cáo?JSON và xử lý các trường chưa được xuất hiện
Yêu cầu mã máy khách xuất để có chức năng này cảm thấy không may, đặc biệt nếu trường hợp thấp hơn cung cấp đóng gói hoặc quyết định sắp xếp cấu trúc muộn hơn nhiều so với thiết kế của chúng.
Mọi người xử lý vấn đề này như thế nào? Chỉ cần xuất tất cả mọi thứ?
Ngoài ra, không xuất các tên trường khiến bạn khó theo dõi các thành ngữ được đề xuất. Tôi nghĩ rằng nếu một cấu trúc X có trường Y, bạn không thể có phương thức truy cập Y(). Nếu bạn muốn cung cấp quyền truy cập giao diện cho Y, bạn phải đưa ra tên mới cho trình khởi động và không có vấn đề gì bạn sẽ nhận được một cái gì đó không thành ngữ theo http://golang.org/doc/effective_go.html#Getters
Để ghi lại, tôi phải Unmarshall sử dụng "json.Unmarshal (b, & d.jsonData)". Tôi đã làm điều gì đó sai, hay là điều đó được mong đợi? – Derek
@Derek, cảm ơn, tôi đã cập nhật câu trả lời của mình. Như tôi đã nói mã chưa được kiểm tra. Tôi cũng dường như cũng quên một câu lệnh return trong phương thức 'UnmarshalJSON()' của tôi. Tôi cũng cố định cái này. –
Tôi trễ một chút để hiển thị, nhưng ... trong khi các tác phẩm trên, Field1 và Field2 _are_ được xuất. Bạn có thể đọc và viết Field1 và Field2 của JsonData (với một chữ J) bên ngoài gói đó. Vì vậy, trong khi điều này là mát mẻ về lý thuyết, nó không thực sự làm bất cứ điều gì khác hơn là xuất khẩu cả loại và các lĩnh vực. – davidjosepha