利用JSON将Map转换为类对象
Map類型做為一種常見的Java類型,經常在開發過程中使用,筆者最近遇到要將Map對象做為一種通用的參數變量,下傳到多個業務類方法中,然后在各個業務類方法中將Map轉換為指定類對象的情況。如何將Map轉為各個不同的業務類對象,筆者通過com.alibaba.fastjson.JSON類來實現該轉換。
例如需要將Map轉為類ClearAcceptBatchOutDto對象。
1.實體類:ClearAcceptBatchOutDto
public class ClearAcceptBatchOutDto {
/**
* 產品編碼
**/
private String productCode;
/**
* 支付類型和金額組(此處包含嵌套類PayTypeRequestDto)
**/
private List<PayTypeRequestDto> payTypeGroup;
/**
* 手續費金額
**/
private Long poundageAmount;
public String getProductCode() {
return productCode;
}
public void setProductCode(String productCode) {
this.productCode = productCode;
}
public List<PayTypeRequestDto> getPayTypeGroup() {
return payTypeGroup;
}
public void setPayTypeGroup(List<PayTypeRequestDto> payTypeGroup) {
this.payTypeGroup = payTypeGroup;
}
public Long getPoundageAmount() {
return poundageAmount;
}
public void setPoundageAmount(Long poundageAmount) {
this.poundageAmount = poundageAmount;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
2.實體類:PayTypeRequestDto
public class PayTypeRequestDto {
/**
* 支付方式
**/
private String payType;
/**
* 支付方式金額
**/
private Long amount;
public String getPayType() {
return payType;
}
public void setPayType(String payType) {
this.payType = payType;
}
public Long getAmount() {
return amount;
}
public void setAmount(Long amount) {
this.amount = amount;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
3.將Map對象轉換為對象ClearAcceptBatchOutDto:
public static void main(String[] args) {
// 構造map對象(這里要確保key與對象中的屬性變量名大小寫一致)
Map<String, Object> params = new HashMap<String, Object>();
params.put("productCode", "01010101");
params.put("poundageAmount", 222L);
// 構造嵌套對象集合
List<Map<String, Object>> payTypeGroup = new ArrayList<Map<String, Object>>();
Map<String, Object> payTypeGroupMap = new HashMap<String, Object>();
payTypeGroupMap.put("payType", "01");
payTypeGroupMap.put("amount", 100L);
payTypeGroup.add(payTypeGroupMap);
Map<String, Object> payTypeGroupMap2 = new HashMap<String, Object>();
payTypeGroupMap2.put("payType", "02");
payTypeGroupMap2.put("amount", 101L);
payTypeGroup.add(payTypeGroupMap2);
params.put("payTypeGroup", payTypeGroup);
// 將map轉為ClearAcceptBatchOutDto對象
ClearAcceptBatchOutDto clearAcceptBatchOutDto = JSON.parseObject(JSON.toJSONString(params), ClearAcceptBatchOutDto.class);
// 打印對象
System.out.println(params);
System.out.println(clearAcceptBatchOutDto);
}
以下控制臺輸出信息:
Map對象:
{poundageAmount=222, productCode=01010101, payTypeGroup=[{amount=100, payType=01}, {amount=101, payType=02}]}
ClearAcceptBatchOutDto對象:
com.suning.epp.css.clear.dto.ClearAcceptBatchOutDto@1c78c0b[productCode=01010101,payTypeGroup=[com.suning.epp.css.clear.dto.PayTypeRequestDto@843fce[payType=01,amount=100], com.suning.epp.css.clear.dto.PayTypeRequestDto@1dd3bcd[payType=02,amount=101]],poundageAmount=222]
總結
以上是生活随笔為你收集整理的利用JSON将Map转换为类对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rman备份类型及删除备份
- 下一篇: 前后端数据交互之数据接口