import java.io.StringReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONReader; public class TestJson { public static void main(String[] args) { //Create 100,000 test data JSONArray jsonArray = new JSONArray(); for(int i=0;i<100000;i++){ JSONObject jsonObject = new JSONObject(); Map<String, Object> map = new HashMap<String, Object>(); map.put("MERCHCODE", "MERCHCODE"+i); map.put("DEVCODE", "DEVCODE"+i); map.put("TRANSTIME", "TRANSTIME"+i); map.put("TRANSAMT", 100+i); map.put("TRANSTYPE", "TRANSTYPE"+i); map.put("TRANSSTATUS", "TRANSSTATUS"+i); jsonObject.putAll (map); jsonArray.add(i, jsonObject); } //get start time long startTime=System.currentTimeMillis(); //return List List<Map<String, Object>> rsList = new ArrayList<Map<String, Object>>(); /*The first type: convert each json array element into a json object, traverse and add it to the List * Program running time: 4079ms Total: 100000 * Program running time: 400ms Total: 100 * Program running time: 460ms Total: 20 * JSONArray array=JSON.parseArray(jsonArray.toJSONString()); for (int i = 0; i < array.size(); i++) { JSONObject object2 = array.getJSONObject(i);//json array object Map<String, Object> map2 = new HashMap<String, Object>(); for (Object k : object2.keySet()) { Object v = object2.get(k); map2.put(k.toString(), v); } rsList.add(map2); }*/ /* The second: objectification, escape the return field, and customize the return field and type * Program running time: 4729ms Total: 100000 * Program running time: 697ms Total: 100 * Program running time: 605ms Total: 20 * List<HisDataReturnDto> datas=JSON.parseArray(jsonArray.toJSONString(), HisDataReturnDto.class); if(null != datas && datas.size() != 0){ for(HisDataReturnDto data:datas){ Map<String,Object> map = new HashMap<String,Object>(); map.put("merchName", data.getMERCHNAME()); map.put("merchCode", data.getMERCHCODE()); map.put("devCode", data.getDEVCODE()); map.put("transTime",data.getTRANSTIME()); map.put("transAmt", data.getTRANSAMT()); map.put("transType", data.getTRANSTYPE()); map.put("transStatus",data.getTRANSSTATUS()); rsList.add(map); } }*/ /*The third: read stream method, which is advantageous when the amount of data is large * Program running time: 2602ms Total: 100000 * Program running time: 447ms Total: 100 * Program running time: 486ms Total: 20 */ JSONReader reader = new JSONReader(new StringReader(jsonArray.toJSONString())); reader.startArray(); Map<String, Object> map = new HashMap<String, Object>(); while (reader.hasNext()) { reader.startObject(); while (reader.hasNext()) { String arrayListItemKey = reader.readString(); String arrayListItemValue = reader.readObject(); map.put(arrayListItemKey, arrayListItemValue); } rsList.add(map); reader.endObject(); } reader.endArray (); reader.close(); //get the end time long endTime=System.currentTimeMillis(); System.out.println("Program running time: "+(endTime-startTime)+"ms"); System.out.println("总数:"+rsList.size()); }
//Description: The running time of the program is limited by the system and is for reference only;
} import java.io.Serializable; public class HisDataReturnDto implements Serializable { private static final long serialVersionUID = 7812345985709979623L; //****************************Request parameters start **************** ******** /* * Page turning direction */ private String MERCHNAME; /* * Do you need the total number of records */ private String MERCHCODE; /* * Machine tool terminal */ private String DEVCODE; /* * Trading hours begin */ private String TRANSTIME; /* * End of trading hours */ private Double TRANSAMT; private String TRANSTYPE; /* * Do you need the total number of records */ private String TRANSSTATUS; public String getMERCHNAME() { return MERCHNAME; } public void setMERCHNAME(String mERCHNAME) { MERCHNAME = mERCHNAME; } public String getMERCHCODE() { return MERCHCODE; } public void setMERCHCODE(String mERCHCODE) { MERCHCODE = mERCHCODE; } public String getDEVCODE() { return DEVCODE; } public void setDEVCODE(String dEVCODE) { DEVCODE = dEVCODE; } public String getTRANSTIME() { return TRANSTIME; } public void setTRANSTIME (String tRANSTIME) { TRANSTIME = tRANSTIME; } public Double getTRANSAMT() { return TRANSAMT; } public void setTRANSAMT(Double tRANSAMT) { TRANSAMT = tRANSAMT; } public String getTRANSTYPE() { return TRANSTYPE; } public void setTRANSTYPE(String tRANSTYPE) { TRANSTYPE = tRANSTYPE; } public String getTRANSSTATUS() { return TRANSSTATUS; } public void setTRANSSTATUS(String tRANSSTATUS) { TRANSSTATUS = tRANSSTATUS; } //****************************End of request parameters**************** ********