• 读取jsonArray文件并转换为java对象工具类


            json文件中存放jsonArray,将其读取出来并转换为java对象,转换的对象需要根据传入的对象动态转换,工具类编写如下:

    1. import lombok.extern.slf4j.Slf4j;
    2. import com.fasterxml.jackson.databind.ObjectMapper;
    3. import java.io.IOException;
    4. import java.nio.file.Files;
    5. import java.nio.file.Path;
    6. import java.nio.file.Paths;
    7. import java.util.ArrayList;
    8. import java.util.Collections;
    9. import java.util.List;
    10. /**
    11. * @create 2023/9/15 15:32
    12. * @description
    13. */
    14. @Slf4j
    15. public class JsonToolUtil {
    16. public static List readJsonArray(String fileName, Class clazz) throws IOException {
    17. Path f = Paths.get(fileName);
    18. // 判断文件是否存在
    19. if (!Files.exists(f)) {
    20. log.error(String.format("file[%s] not exists", fileName));
    21. return Collections.emptyList();
    22. }
    23. List fileList = Files.readAllLines(f);
    24. // 判断文件是否是空文件
    25. if (fileList.isEmpty()) {
    26. log.warn(String.format("file[%s] is empty", fileName));
    27. return Collections.emptyList();
    28. }
    29. // 将读取的json文件数据转换为对应的bean
    30. List list = new ArrayList<>();
    31. ObjectMapper mapper = new ObjectMapper();
    32. for(String it : fileList){
    33. list.add(mapper.readValue(it, clazz));
    34. }
    35. return list;
    36. }
    37. }

            需要转换的java对象

    1. import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
    2. import com.fasterxml.jackson.annotation.JsonProperty;
    3. import lombok.Data;
    4. import lombok.EqualsAndHashCode;
    5. /**
    6. * @create 2023/9/15 15:44
    7. * @description
    8. */
    9. @Data
    10. @EqualsAndHashCode(callSuper = false)
    11. // 并不包含所有的json属性
    12. @JsonIgnoreProperties(ignoreUnknown = true)
    13. public class UserDto {
    14. // JsonProperty可以将对应的jsonkey指定变量
    15. @JsonProperty("Name")
    16. private String name;
    17. @JsonProperty("Gender")
    18. private String gender;
    19. @JsonProperty("Age")
    20. private Integer age;
    21. }

            测试:

    1. import com.littledyf.domain.UserDto;
    2. import java.io.IOException;
    3. import java.util.List;
    4. /**
    5. * @create 2023/9/15 15:46
    6. * @description
    7. */
    8. public class JsonMain {
    9. public static void main(String[] args) throws IOException {
    10. List userDtoList = JsonToolUtil.readJsonArray("C:\\Users\\dengyifan\\Desktop\\test.json", UserDto.class);
    11. System.out.println(userDtoList);
    12. }
    13. }

            测试结果:

  • 相关阅读:
    计算机三级信息安全技术九十道选择题
    【组成原理-处理器】处理器的相关概念
    使用 Elastic、OpenLLMetry 和 OpenTelemetry 跟踪 LangChain 应用程序
    MyBatis的映射器语法
    pyqt5做了一个无线网连接器,与君共勉
    第17节-PhotoShop基础课程-画笔修复工具
    蓝桥杯入门即劝退(八)回文数
    如何处理前端安全性问题(XSS、CSRF等)?
    基于SpringBoot+Vue的体检预约管理系统
    “好声音“连唱10年,星空华文如何唱响港交所?
  • 原文地址:https://blog.csdn.net/qq_41061437/article/details/132905684