Java读取本地json文件及相应处理方法
作者:superlovelei 发布时间:2023-10-16 16:37:34
标签:Java,json
如下所示:
//读取json文件地址
/* String path = getClass().getClassLoader().getResource("menu.json").toString();
path = path.replace("\\", "/");
if (path.contains(":")) {
path = path.replace("file:/", "");
}*/
ClassPathResource resource = new ClassPathResource("menu.json");
File filePath = resource.getFile();
JSONArray btnArray = null;
//读取文件
String input = FileUtils.readFileToString(filePath, "UTF-8");
//将读取的数据转换为JSONObject
JSONObject jsonObject = JSONObject.fromObject(input);
if (jsonObject != null) {
//取出按钮权限的数据
btnArray = jsonObject.getJSONArray("btnList");
}
Map<String, List<MenuVo>> btnMap = new HashMap<>();
Iterator<Object> num = btnArray.iterator();
//遍历JSONArray,转换格式。按按钮集合按模块(name)放入map中
while (num.hasNext()) {
JSONObject btn = (JSONObject) num.next();
btnMap.put((String) btn.get("name"), JSONArray.toList((JSONArray) btn.get("children"), new MenuVo(), new JsonConfig()));
}
json文件
{
"btnList": [
{
"name": "用户管理",
"children": [
{
"id": "yhgladd",
"name": "添加"
},
{
"id": "yhgledit",
"name": "编辑"
},
{
"id": "yhgldelete",
"name": "暂停"
},
{
"id": "yhglstart",
"name": "启用"
},
{
"id": "yhglsee",
"name": "查看"
}
]
},
{
"name": "角色管理",
"children": [
{
"id": "jsgladd",
"name": "添加"
},
{
"id": "jsgledit",
"name": "编辑"
},
{
"id": "jsglauth",
"name": "授权"
},
{
"id": "jsgldelete",
"name": "删除"
}
]
}
]
}
来源:https://blog.csdn.net/superlover_/article/details/79461111
0
投稿
猜你喜欢
- 什么是异步?为什么要用它?异步编程提供了一个非阻塞的,事件驱动的编程模型。 这种编程模型利用系统中多核执行任务来提供并行,因此提供了应用的吞
- 解决方法有如下两种:第一种如果你 repo sync 了 android 的整个源码,那么可以直接把你的 app 放到 /packages/
- SpringBoot2之PUT请求接收不了参数的解决办法,这个问题,关乎两个Filter过滤器,是spring3和3.5之后提供的,目的就是
- 我们知道在编程时许多操作(如更新UI)需要在主线程中完成,而且,耗时操作(如网络连接)需要放在子线程中,否则会引起ANR。所以我们常使用Ha
- 在Spring Boot Actuator中提供很多像health、metrics等实时监控接口,可以方便我们随时跟踪服务的性能指标。Spr
- 这篇文章主要介绍了SpringBoot FreeWorker模板技术解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- OverView今天在复习的时候,突然复习到我们的相机操作,但是对于相机操作,对于我来说比较复杂的是对于权限的操作。所有我们需要对我们的相机
- 今天来了一个问题:软键盘无法弹出。分析后是因为系统判断当前有外接硬键盘,就会隐藏软键盘。但实际情况并不是这么简单,该问题只有在特定条件下偶现
- 在Android中使用SQLite数据库的入门指南,打算分下面几部分与大家一起分享, 1、什么是SQLite 2、Android中使用SQL
- 概述LruCache的核心原理就是对LinkedHashMap的有效利用,它的内部存在一个LinkedHashMap成员变量,值得注意的4个
- Java Function的使用一、方法介绍表示接受一个参数并产生结果的函数。参数类型 T - 函数输入的类型R - 函数的结果类型方法介绍
- 最近碰到这么个恶心的问题问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生
- 概述:App几乎都离不开与服务器的交互,本文主要讲解了flutter网络请求三种方式 flutter自带的HttpClient、 第三方库h
- Spring 配置文件报错:元素 "context:component-scan" 的前缀 "context&
- 在IntelliJ IDEA 中这个查看一个类也就是当前类的所有继承关系,包括实现的所有的接口和继承的类,这个继承,不仅仅是一级的继承关系,
- Rmb.javapublic class Rmb { /** *人民币的基本信息和操作 *@auth
- 我们都知道,当RecyclerView数据源更新后,还需要通过adapter调用对应的方法,从而让RecyclerView重新绘制页面本次也
- 首先给出一段代码:public class AslistMethod { public static void main(String[]
- 近期,Apache SkyWalking 修复了一个隐藏了近4年的Bug - TTL timer 可能失效问题,这个 bug 在 SkyWa
- 本文实例讲述了Android中TextView显示插入的图片实现方法。分享给大家供大家参考,具体如下:Android系统默认给TextVie