美文网首页SpringBoot实战
spring boot读取json文件并实现接口查询

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

作者: 打一枪放2炮 | 来源:发表于2020-08-17 14:21 被阅读0次

    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<User> userList = new ArrayList<>();
    
        @Value("classpath:user.json")
        private Resource userResource;
    
        @PostConstruct
        public List<User> 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<User> getUserById(@PathVariable Integer id){
            List<User> 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<List<User>> getUserById(){
            return ResultUtil.ok(userDao.getUser());
        }
    }
    

    6.测试

    浏览器访问:

    6.1 查询用户列表

    http://localhost:8080/users

    在这里插入图片描述

    6.2 根据ID查询用户

    http://localhost:8080/user/1

    在这里插入图片描述

    相关文章

      网友评论

        本文标题:spring boot读取json文件并实现接口查询

        本文链接:https://www.haomeiwen.com/subject/yghqjktx.html