phép nói rằng tôi có các lớp sau:Gson tự động thêm classname
public class Dog {
public String name = "Edvard";
}
public class Animal {
public Dog madDog = new Dog();
}
Nếu tôi chạy này trough một Gson nó sẽ serialize nó như sau:
GSon gson = new GSon();
String json = gson.toJson(new Animal())
result:
{
"madDog" : {
"name":"Edvard"
}
}
này đến nay rất tốt, nhưng tôi muốn thêm className cho tất cả các lớp tự động với Gson, vì vậy tôi nhận được kết quả sau:
{
"madDog" : {
"name":"Edvard",
"className":"Dog"
},
"className" : "Animal"
}
Có ai biết nếu điều này là có thể với một số loại interceptors hoặc một cái gì đó với Gson?
Điều này thực sự không giải quyết được sự cố? Tôi muốn sử dụng serialization tiêu chuẩn cho tất cả các lĩnh vực nhưng thêm một trường bổ sung duy nhất cho tên lớp - nó cảm thấy giống như một trường hợp sử dụng thực sự bình thường. – mjaggard
Vấn đề là bạn muốn thêm một trường đơn vào tuần tự hóa bình thường và giải pháp của tôi giải quyết vấn đề đó (đặc biệt là không phụ thuộc vào bất kỳ phụ thuộc bổ sung nào). Tôi hiểu rằng đó là một loại đau đớn nhưng ra khỏi hộp không có/không có vẻ là một cách để đạt được nhiệm vụ đơn giản này mà không cần tạo và đăng ký serializers tùy chỉnh. –