Tôi cần thêm thuộc tính mới vào một đối tượng, khi tuần tự hóa thành JSON. Giá trị của thuộc tính được tính trên thời gian chạy và không tồn tại trong đối tượng. Ngoài ra, cùng một đối tượng có thể được sử dụng để tạo JSON khác nhau với các trường ot khác nhau (loại có một lớp cơ sở với các lớp con, nhưng tôi không muốn tạo các lớp chỉ để tạo JSON).Jackson :: thêm các trường bổ sung vào một đối tượng trong tuần tự hóa
Cách tốt nhất để thực hiện điều đó, điều này không liên quan đến việc tạo lớp serializer tùy chỉnh, điều này sẽ xử lý việc tuần tự hóa toàn bộ các trường của đối tượng? Hoặc có thể là nó có thể kế thừa một số "cơ bản" serializer, và chỉ cần lấy nó đầu ra và thêm lĩnh vực mới để nó bằng cách nào đó?
Tôi đã tìm hiểu về mixins và có vẻ như có thể đổi tên/ẩn một số trường, tuy nhiên có vẻ như không thể thêm một trường bổ sung.
này không hoạt động nếu các trường bổ sung không phải là một phần của đối tượng đang được seri của trách nhiệm. Ví dụ. URL của một đối tượng ... Nó không phải là công việc của đối tượng để biết địa chỉ riêng của nó, đó là một công việc của lớp cao hơn. – cdeszaq
Khá, nhưng tại sao sau đó nó được tuần tự hóa trong cùng một đối tượng JSON? Điều này nghe có vẻ như thiết kế có khả năng xấu cho tải trọng JSON. Mặc dù được cấp JSON có vấn đề là không có phân chia đơn giản giữa dữ liệu, siêu dữ liệu (có thể đưa ra quy ước đặt tên) – StaxMan
Biểu diễn đối tượng bên trong không giống như biểu diễn tài nguyên bên ngoài (có thể cần thay đổi tùy thuộc vào tiêu đề Chấp nhận) . URL hoặc địa chỉ mà tại đó tài nguyên cuộc sống có thể thay đổi và không phải là trách nhiệm của đối tượng bên trong mà là của các tuyến hoặc một số lớp cao hơn khác. – cdeszaq