将a.b.c转化为a:{b:{c:‘值‘}}
使用框架的东西https://github.com/mikolajmitura/java-properties-to-json自己写的递归处理/*** a.b.c=8789* a.b.e=8789* <p>* a:{b:{c:8789,e:8789}}** @param obj 最后生产出来的对象* @param arra.b.c 进行split后的处理* @param i起始开始值*
·
使用框架的东西
https://github.com/mikolajmitura/java-properties-to-json
自己写的递归处理
/**
* a.b.c=8789
* a.b.e=8789
* <p>
* a:{b:{c:8789,e:8789}}
*
* @param obj 最后生产出来的对象
* @param arr a.b.c 进行split后的处理
* @param i 起始开始值
* @param p 对应叶子节点的值
*/
void dealKey(Map obj, String[] arr, int i, ParamNode p) {
//如果是最后一项直接返回
if (i == arr.length)
return;
//如果map中的字段不为空
if (null != obj.get(arr[i])) {
if (i == arr.length - 1) {
obj.put(arr[i], p.getTagDescription("@sample"));
++i;
dealKey((Map) obj.get(arr[i - 1]), arr, i, p);
} else {
++i;
dealKey((Map) obj.get(arr[i - 1]), arr, i, p);
}
} else {
//判断是叶子节点,将值放入map中,
if (i == arr.length - 1) {
obj.put(arr[i], p.getTagDescription("@sample"));
++i;
return;
} else {
//如果不是叶子节点创建一个map
obj.put(arr[i], new LinkedHashMap<>());
++i;
}
dealKey((Map) obj.get(arr[i - 1]), arr, i, p);
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)