递归封装数据
今天突然出现一个代码加载缓慢的问题,经过判断后发现是方法调用数据太慢导致,于是我进行了一个递归封装,将JSONArray和JSONObject转化为我想要的Record 如下
public void dgJson(Record re,String key,Object obj){
//数据对象类型为JSONArray
if (obj instanceof JSONArray){
List<Record> recordList = new ArrayList<>();
JSONArray jsonArray = (JSONArray)obj;
for (Object object:jsonArray){
JSONObject jsonObject = (JSONObject)object;
Record record = new Record();
dgJson(record,null,jsonObject);
recordList.add(record);
}
re.set(key,recordList);
//数据对象类型为JSONObject
}else if(obj instanceof JSONObject){
JSONObject jsonObject = (JSONObject)obj;
if(key!=null){
Record record = new Record();
for (String keyStr:jsonObject.keySet()){
dgJson(record,keyStr,jsonObject.get(keyStr));
}
re.set(key,record);
}else {
for (String keyStr:jsonObject.keySet()){
dgJson(re,keyStr,jsonObject.get(keyStr));
}
}
//数据对象类型为其他
}else {
re.set(key,obj);
}
}