如图的数据库表,其中PvGroupID是其父结点的ID,VGroupID是自身的ID,名为总分组的结点,是根结点,他没有父结点
将该表的接树形结构转换成JSON数据表达格式。
例如:JSON=[{"text":"总分组","nodes":[{"text":"运德","nodes":[{"text":"运德子1"},{"text":"运德子2"}]},{"text":"运美","nodes":[{"text":"运美子1"},{"text":"运美子2"}]}]}]
这个JSON表示如下结构
生成这样的JSON运用一个递归算法
public String toJson(long id) throws Exception{
String json1="";
List<VehicleGroupInfoBo> list= vGroupDao.getVGroupList(id);
VehicleGroupInfoBo vgbo=vGroupDao.getVehicleGroupInfoBoById(id);
if(list==null){
List<VehicleInfoBo> listv=vInfoDao.getVehicleList(id);
if(listv==null){
json1=json1+"{\"text\":\""+vgbo.getGroupName()+"\"}";
}else{
json1=json1+"{\"text\":\""+vgbo.getGroupName()+"\",\"nodes\":[";
for(int i=0;i<listv.size();i++){
VehicleInfoBo vbo=listv.get(i);
if(i==0&&i!=listv.size()-1){
json1=json1+"{\"text\":\""+vbo.getVehicleLic()+"\"},";
}
else if(i>0&&i<listv.size()-1){
json1=json1+"{\"text\":\""+vbo.getVehicleLic()+"\"},";
}
else if(i==listv.size()-1){
json1=json1+"{\"text\":\""+vbo.getVehicleLic()+"\"}]";
}
}
json1=json1+"}";
}
}
else{
json1=json1+"{\"text\":\""+vgbo.getGroupName()+"\",\"nodes\":[";
for(int j=0;j<list.size();j++){
if(j==0&&j!=list.size()-1){
;
json1=json1+toJson(list.get(j).getVGroupID())+",";
}
else if(j>0&&j<list.size()-1){
json1=json1+toJson(list.get(j).getVGroupID())+",";
}
else if(j==list.size()-1){
json1=json1+toJson(list.get(j).getVGroupID())+"]";
}
}
json1=json1+"}";
}
return json1;
}