1
這裏是我的階級結構:JSON對象映射:避免序列化JSON字符串,它列出派生類
public class Business {
public long id;
public List<Employee> employees;
// constructors, getters, setters
}
public class BusinessParcelable extends Business implements Parcelable {
// some functions, not additional fields
}
public class Employee {
// fields, constructor, getters, setters
}
public class EmployeeParcelable extends Employee implements Parcelable {
// some functions, no additional fields
}
如果我使用下面的代碼序列化到JSON字符串:
someFunction(BusinessParcelable b) {
ObjectMapper objectMapper = new ObjectMapper();
Business base = (Business)b;
String jsonString = objectMapper.writeValueAsString(base);
}
的jsonString看起來像:
{
"id": 15,
"employees": [
{
...
}
],
"employeesParcelable": [
{
...
}
]
}
我不希望員工和employeesParcelable重複在我的JSON st環。我能夠通過更換來解決它:
Business base = (Business)b;
有了:
Business base = new Business();
base.setXXX(b.getXXX());
base.setYYY(b.getYYY());
base.setZZZ(b.getZZZ());
但我想避免這種深刻的副本作爲我的階級結構有很多領域,是多層次深。傑克遜是否有辦法避免重複基本和派生列表(通過一些簡單的註釋)?
編輯: 我只是能夠得到使用谷歌GSON期望的結果:
Gson gson = new Gson();
String jsonUsingGson = gson.toJson(base);
它仍然是很好的知道如何使用傑克遜雖然得到了相同的結果。