[英]How to serialize a DTO to key-value list?
我想將復雜的DTO序列化為鍵值對的平面映射。
每個原語應由此直接轉換為鍵值。
每個列表本身應根據列表中的索引附加數字。
例:
public class PersonDTO {
@XmlElement(name="THEPERSON")
private String name;
@XmlElement(name="THEAGE")
private int age;
private List<Pet> pets;
}
public class Pet {
private String name;
private String type;
}
所需結果:
THEPERSON=test
THEAGE=16
PETNAME_1=pabbi
PETTYPE_1=rabbit
PETNAME_2=foxy
PETTYPE_2=fox
...
PETNAME_N=...
問題:是否有任何框架可以像這樣幫助序列化dto? 我的DTO可能包含100多個字段,否則我將不得不手動對其進行轉換。
BeanMap在org.apache.commons.beanutils中可用,它將使用setter和getter方法將簡單的bean類轉換為map。對於您的用例,我認為您需要通過反射來編寫類似的util,您可以獲取價值,然后找到讀取的內容。屬性的方法並填充值。
代碼示例:
public class BeanMapExample {
public static void main(String[] args) {
Person person = new Person();
person.setFirstName("gati");
person.setLastNmae("sahu");
person.setEmailId("abcd@gmail.com");
person.getMyFriendList().add("sahu");
BeanMap map = new BeanMap(person);
//Iterate through keys
Iterator<String> it = map.keyIterator();
it = map.keyIterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key + ": " + map.get(key));
}
}
}
輸出:
firstName: gati
lastNmae: sahu
emailId: abcd@gmail.com
class: class pkg1.Person
myFriendList: [sahu]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.