lớp của tôi:Làm thế nào để ngăn chặn Gson serialize/deserialize ký tự đầu tiên của một trường (gạch dưới)?
class ExampleBean {
private String _firstField;
private String _secondField;
// respective getters and setters
}
Tôi muốn xuất hiện như sau:
{
"FirstField":"value",
"SecondField":"value"
}
Và không như thế này
{
"_FirstField":"value",
"_SecondField":"value"
}
tôi khởi tạo phân tích cú pháp như sau:
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat(DateFormat.LONG);
builder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE);
builder.setPrettyPrinting();
set_defaultParser(builder.create());
Tôi có thể thấy API và trong documentation của "FieldNamePolicy" nhưng tôi ngạc nhiên là không cung cấp tùy chọn để bỏ qua "_" Tôi cũng biết tôi có thể sử dụng các chú thích ...
@ SerializedName (" custom_naming ")
... nhưng không muốn phải viết điều này cho alllllll các lĩnh vực của tôi ...
Nó rất hữu ích cho tôi để phân biệt giữa các biến địa phương và các trường của một lớp. :(Bất cứ ý tưởng
EDIT:?. Sẽ có nhiều giải pháp rõ ràng, (thừa kế, phương pháp ghi đè gson, expresions thường xuyên) Câu hỏi của tôi là tập trung hơn vào việc có một giải pháp có nguồn gốc của gson hoặc một sửa chữa ít xâm nhập ?
có lẽ chúng ta có thể đề xuất FieldNamePolicy như mới?
Câu trả lời là ... theo đúng quy ước đặt tên Java và không sử dụng dấu gạch dưới. Và mặc dù các quy ước đặt tên JSON cho phép nó, bạn hiếm khi tìm thấy bất kỳ ai sử dụng PascalCase trong JSON (đó là những gì đầu ra được đề xuất của bạn). Tùy chọn khác của bạn đang sử dụng '@ SerializedName' cho mọi tên trường không khớp. –
Bạn không cho tôi biết bất cứ điều gì tôi không biết. Tôi và nhóm chuyên gia của tôi, chúng tôi tự do lựa chọn các quy ước ngôn ngữ mà chúng tôi đồng ý nhiều hơn. Đặc biệt khi chúng tôi tích hợp nhiều công nghệ và ngôn ngữ khác nhau cùng một lúc. Dù sao, cảm ơn thời gian của bạn. – enagra
Sau đó, bạn và "nhóm chuyên gia" của bạn nên chuẩn bị để đối phó với các vấn đề phát sinh từ đó, eh? Oddly đủ Tôi đã thực sự ở giữa gõ một câu trả lời cho bạn thấy làm thế nào bạn thực sự có thể thực hiện điều này với một tùy chỉnh Gson JsonSerializer sử dụng sự phản ánh khi bạn nhận xét ...nhưng tôi chắc chắn bạn sẽ tìm ra điều đó, với điều kiện bạn có cả đội ngũ chuyên gia ... –