日志树的生成

各位大佬,请教一个问题 这种日志树是怎么生成的? 。。。 发现了一个问题 V2EX 无法发图片 算了 直接看他的返回格式

com.cityminsu.rba.baseinfo.api.vo.ProductVo
├──价格结束时间:'Mon Nov 15 00:00:00 CST 2021'->'Tue Mar 22 16:29:00 CST 2022'
├──产品状态:'下架'->'上架'
├──规则模版
│    ├──是否可退:'取消扣全款'->'限时取消'
│    ├──rbaRatePlanScope
│    │    └──rbaRatePlanScopeList
│    │         ├──:添加 '[houseList=[0]=0;orgId=0]'
│    │         └──:删除 '[houseList=[0]=0;orgId=0]'
│    └──stayDaysProduct:添加 '[[StayDaysProductVo{productId=null, stayDays=2, discountRatio=80, productStatus=1, active=0}]=[active=0;discountRatio=80;productStatus=1;stayDays=2];[StayDaysProductVo{productId=null, stayDays=3, discountRatio=79, productStatus=1, active=0}]=[active=0;discountRatio=79;productStatus=1;stayDays=3];[StayDaysProductVo{productId=null, stayDays=5, discountRatio=77, productStatus=1, active=0}]=[active=0;discountRatio=77;productStatus=1;stayDays=5];[StayDaysProductVo{productId=null, stayDays=7, discountRatio=75, productStatus=1, active=0}]=[active=0;discountRatio=75;productStatus=1;stayDays=7]]'
├──价格开始时间:'Wed Aug 18 00:00:00 CST 2021'->'Wed Aug 18 16:29:00 CST 2021'
├──平日价:'0.00'->'1000.00'
└──周末价:'0.00'->'1000.00'
  覆盖方式: '不覆盖日历上单独设立价格'

可以看到他返回的就是这种树状结构 请问是怎么实现的