#|spring boot读取json文件并实现接口查询

1.说明 最近需要在spring boot项目启动时读取json文件并保存到List<模型>中,然后需要在controller中去访问使用。为了还原这个使用场景我做了个例子。
2.准备json文件 将user.json文件复制到spring boot项目的resource目录下。文件内容如下:

[ { "id":1, "name": "小李", "gender": "男", "age": 18 }, { "id":2, "name": "小王", "gender": "女", "age": 18 } ]

3.编写User模型
@Data public class User { private Integer id; private String name; private String gender; private Integer age; }

4.编写UserDao
@Component public class UserDao { private static List userList = new ArrayList<>(); @Value("classpath:user.json") private Resource userResource; @PostConstruct public List getUser(){ try { String json = IOUtils.toString(userResource.getInputStream(), Charset.forName("UTF-8")); userList = JSONObject.parseArray(json, User.class); } catch (Exception e) { System.out.println(e.getMessage()); }return userList; }}

5.编写UserController
@RestController public class UserController { @Autowired UserDao userDao; /** *根据ID查询用户 * @param id * @return */ @GetMapping("/user/{id}") public Result getUserById(@PathVariable Integer id){ List list = userDao.getUser(); User user = null; for (User u: list) { if (u.getId().equals(id)){ user = u; break; } }return ResultUtil.ok(user); }/** *查询用户列表 * @return */ @GetMapping("/users") public Result> getUserById(){ return ResultUtil.ok(userDao.getUser()); } }

6.测试 浏览器访问:
6.1 查询用户列表 【#|spring boot读取json文件并实现接口查询】http://localhost:8080/users
#|spring boot读取json文件并实现接口查询
文章图片

6.2 根据ID查询用户 http://localhost:8080/user/1
#|spring boot读取json文件并实现接口查询
文章图片

    推荐阅读