java获取本地json格式的内容

前言

该功能模块基于springBoot,自己在开发中遇到相关功能开发,总结如写:

1.首先将所需要获取的json文件放在项目resource目录下:

2.所需要的pom依赖:

       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>

3.读取JSON工具类

/**
     * 读取json文件,返回json串
     * @param fileName
     * @return
     */
    public static String readJsonFile(String fileName) {
        String jsonStr = "";
        try {
            File jsonFile = new File(fileName);
            FileReader fileReader = new FileReader(jsonFile);

            Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
            int ch = 0;
            StringBuffer sb = new StringBuffer();
            while ((ch = reader.read()) != -1) {
                sb.append((char) ch);
            }
            fileReader.close();
            reader.close();
            jsonStr = sb.toString();
            return jsonStr;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

4.测试类

public class TestJson {
 public static void main(String[] args) throws  Exception{
      // 假设我下面json文档有10个 名字:1 -10.json
       for (int j = 1; j < 10; j++) {
            String srcpath = j+".json";
            String path = ElectronicWaybillController.class.getClassLoader().getResource(srcpath).getPath();
            String s = readJsonFile(path);
            JSONObject jobj = JSON.parseObject(s);
            //构建JSONArray数组
            JSONArray movies = jobj.getJSONArray("content");
            for (int i = 0 ; i < movies.size();i++){
                JSONObject key = (JSONObject)movies.get(i);
                ElectronicWaybillDetailsDTO electronicWaybillDetailsDTO = new ElectronicWaybillDetailsDTO();
                electronicWaybillDetailsDTO.setDriverName((String)key.get("driverName"));
                electronicWaybillDetailsDTO.setAreaCode((String)key.get("organCode"));
                electronicWaybillDetailsDTO.setCanBodyNo((String)key.get("tankNum"));

                    这里字段较多,以上写以上几个作为代表

                electronicWaybillService.insert(electronicWaybillDetailsDTO);
        }
}
posted @   [奋斗]  阅读(577)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示