目標: 根據兩個list中每條記錄的某個屬性是否相同來拼接。
1.首先定義一個字符串
String str = "[{\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":1,\"BILLTYPENAME\":\"一般繳款書\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":3,\"BILLTYPENAME\":\"退付書(微機)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":41,\"BILLTYPENAME\":\"高速公路收費專用票據(500元)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":720,\"BILLTYPENAME\":\"單位手寫繳款書(本局)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":721,\"BILLTYPENAME\":\"單位微機繳款書(本局)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":743,\"BILLTYPENAME\":\"收入專用收據(機打)\"}\n" +
"]";
2.然后將str先轉換成json格式,然后再轉換成list1: 代碼如下
ObjectMapper mapper = new ObjectMapper();
List<Map<String,Object>> conList = null;
conList = mapper.readValue(str, List.class);
3.ObjectMapper的使用需要導入jar包或者在pom文件中添加依賴:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.1</version>
</dependency>
4.通過mybatis查詢表中的數據,用list接收
List<EInvoiceThresholdDTO> list = new ArrayList<EInvoiceThresholdDTO>();
list = eInoviceThresholdMapper.selectAll();
5.然后通過循環嵌套,對比出BILLTYPEID,如果相同則將表中查出的部分屬性通過list的put方法添加到list conList中
上完整代碼:
@Override
public List<Map<String,Object>> selectAll() {
String str = "[{\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":1,\"BILLTYPENAME\":\"一般繳款書\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":3,\"BILLTYPENAME\":\"退付書(微機)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":41,\"BILLTYPENAME\":\"高速公路收費專用票據(500元)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":720,\"BILLTYPENAME\":\"單位手寫繳款書(本局)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":721,\"BILLTYPENAME\":\"單位微機繳款書(本局)\"},\n" +
" {\"ITEMID\":2,\"ITEMNAME\":\"人大常委辦公廳\",\"BILLTYPEID\":743,\"BILLTYPENAME\":\"收入專用收據(機打)\"}\n" +
"]";
List<EInvoiceThresholdDTO> list = new ArrayList<EInvoiceThresholdDTO>();
list = eInoviceThresholdMapper.selectAll();
ObjectMapper mapper = new ObjectMapper();
List<Map<String,Object>> conList = null;
try {
conList = mapper.readValue(str, List.class);
for (int i=0;i<conList.size();i++){
for (int j=0;j<list.size();j++){
if (conList.get(i).get("BILLTYPEID").toString().equals(list.get(j).getBillTypeID().toString())){
conList.get(i).put("AGENCY",list.get(j).getAGENCY());
conList.get(i).put("YEAR",list.get(j).getYEAR());
conList.get(i).put("WRITEUSER",list.get(j).getWRITEUSER());
conList.get(i).put("WRITEDATE",list.get(j).getWRITEDATE());
conList.get(i).put("ISENABLE",list.get(j).getISENABLE());
conList.get(i).put("ISAUTO",list.get(j).getISAUTO());
conList.get(i).put("threshold",list.get(j).getThreshold());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return conList;
}