Trong giao tiếp tạo mẫu giữa ứng dụng .NET trên máy tính và máy chủ Java, sử dụng REST với các bài viết JSON, tôi đang gặp vấn đề về độ nhạy. Đối tượng .NET có các thuộc tính trong Pascal Casing (thường là .NET), ví dụ: Symbol, EntryValue
(v.v.), trong khi biểu diễn Java của cùng một đối tượng sử dụng vỏ lạc đà, ví dụ: symbol, entryValue
.GSON deserialize theo cách phân biệt chữ hoa chữ thường
Server nhận giá trị json như:
{"EntrySize":100,"Symbol":"AMZN"}
Nhưng Gson không deserialize theo cách case-insensitive. Có cách nào để Gson làm điều này không?
Tuyệt vời! Điều này dễ dàng được sửa bằng chính sách UPPER_CAMEL_CASE. Chúng tôi đã tìm thấy điều này trong tài liệu chưa? Trong sự vội vã của tôi để kiểm tra điều này, tôi đã không thể đọc đầy đủ tài liệu và tìm kiếm nhanh không chỉ ra câu trả lời rõ ràng như bạn đã làm. Cảm ơn! –
@Sam Nó nằm ở phía dưới trang trong [hướng dẫn sử dụng] (https://sites.google.com/site/gson/gson-user-guide#TOC-JSON-Field-Naming-Support). Hãy chắc chắn rằng bạn poke xung quanh GsonBuilder để xem tất cả các cấu hình Gson hỗ trợ! –
@ Jeff Bowman Đây thực sự không phải là giải pháp hợp lệ, bởi vì nó KHÔNG khớp với phân biệt chữ hoa chữ thường. Nó chỉ phù hợp với những gì được định nghĩa trong SerializedName hoặc nếu nó bắt đầu với một chữ cái lớn trong phong cách trường hợp lạc đà. Nếu có một json bắt đầu bằng một chữ cái nhỏ (không có chú thích SerializedName), nó sẽ không khớp. – Bevor