首页 > 编程语言 >java读取JSON文件并解析

java读取JSON文件并解析

时间:2024-08-09 15:27:22浏览次数:15  
标签:java 读取 2024 JSON SHEET file import String

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.codehaus.jettison.json.JSONObject;

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;

public class JsonTool {

    /**
     * 文件相对路径(文件内容在最下方)
     */
    private static String FILE_DIR = "项目名/src/main/resources/file.json";

    /**
     * 获取MOCK数据
     *
     * @since 2024/6/25
     */
    public static List getMockData(String dateType) {
        try {
            // 读取JSON文件内容
            String content = new String(Files.readAllBytes(Paths.get(FILE_DIR)));

            // 通过key获取value
            String jsonStr = new JSONObject(content).getJSONArray(dateType).toString();

            ObjectMapper objectMapper = new ObjectMapper();
            List<Map> list = objectMapper.readValue(jsonStr, new TypeReference<List<Map>>() {
            });
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) {
        JsonTool.getMockData("data1");
    }
}


/**
 * file.json文件内容
 *
 * {
 * "data1": [
 * {
 * "taskSheetNo": "TASK_SHEET_NO_001",
 * "status": 1,
 * "isAllComplete": false,
 * "createTime": "2024-06-01"
 * },
 * {
 * "taskSheetNo": "TASK_SHEET_NO_002",
 * "status": 1,
 * "isAllComplete": false,
 * "createTime": "2024-06-01"
 * }
 * ],
 * "data2": [
 * {
 * "taskSheetNo": "TASK_SHEET_NO_001",
 * "status": 1,
 * "isAllComplete": false,
 * "createTime": "2024-06-01"
 * },
 * {
 * "taskSheetNo": "TASK_SHEET_NO_002",
 * "status": 1,
 * "isAllComplete": false,
 * "createTime": "2024-06-01"
 * }
 * ]
 * }
 */

 

标签:java,读取,2024,JSON,SHEET,file,import,String
From: https://www.cnblogs.com/jadening/p/18350791

相关文章

  • 如何使用 Python 从 Excel 工作表中读取正斜杠
    我有20多列的Excel工作表,如果我想选择不包含文本n/a的行,是否可以将n/a作为文本传递并找到它?我尝试过的代码是,''''将pandas导入为pd进口重新导入操作系统defextract_data(input_file):#读取输入的Excel文件df=pd.read_excel(input_file)#Checkif'......
  • JAVA线程资源共享问题
    JAVA多线程共享资源问题场景引入这个场景是一个典型的多线程共享资源的场景,主要目的是测试和观察多个线程对共享变量sum进行并发操作时是否会出现线程安全问题场景描述共享资源:共享变量sum,初始值为0。多个线程同时对sum进行操作,一个线程负责自增操作,另一个线程负责自......
  • Java - IO流
    (IO随用随创建,不用了就关流)1.字节流OutputStream(字节输出流,写出)FileOutputStreanmoff表示起始索引,len表示截取长度Windows换行符:"\r\n"Linux:"\n"Mac:"\r"续写:创建对象第二个参数写true字节打印流(特有方法会原样输出)无缓冲区,自动刷新无用InputStream(字节输......
  • 1.1javaSE初识
    JDK:JDK是JavaDevelopmentKit的缩写,意为Java语言的软件开发工具包(SDK)。它是Java编程的核心工具,为程序开发者提供了一个完整的开发环境。JRE:Java运行环境,是运行Java程序所必须的环境的集合,包含了JVM(Java虚拟机)和Java核心类库。Java开发工具:包括编译器(javac)、解释器(java)、调试......
  • Java SE核心技术——12常用类
    Java中的System类是Java标准库的一部分,它属于java.lang包,因此在使用时不需要显式地导入。这个类提供了一些与系统相关的功能,主要包括以下几个方面:标准输入输出:System.in:标准输入流,通常用于从键盘读取数据。System.out:标准输出流,用于向控制台打印信息。System.err:标准......
  • 读取EXCEL数据导入到oracle
    importpandasaspdimportcx_Oraclefromdatetimeimportdatetime#数据库连接信息username='****'#替换为您的用户名password='****'#替换为您的密码dsn='192.168.10.216:1521/ORCL'#替换为您的数据源名称#读取Excel文件excel_file=......
  • java实现用一个变量表示多个属性的状态
    1、流程启动及状态流转举例(场景:同一份数据在多个流程中流转,确定各流程自己的状态)1.发起流程核心代码/***二进制方式*@paramorgId*@paramnode*@paramcontractIds*/privatevoidstartWithPosition(StringorgId,Stringnode,List<String......
  • Java入门学习——Day02Java工具
    一、Javac1.1Java1(1996年)        Java编译器 javac 在Java1.0版本中首次发布。它将Java源代码(.java 文件)编译成中间字节码(.class 文件)。这个字节码可以在Java虚拟机(JVM)上运行,实现了Java的“编写一次,处处运行”的理念。1.2Java2(1998年)        在Java......
  • JavaScript -- 总结 10 (小白)
    MouseEvent属性<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......
  • JAVA多线程的使用和创建的几种方式
    Thrad创建和使用创建实体类,继承Thread实现run()方法调用start()方法publicclassThreadDemoextendsThread{Loggerlogger=LoggerFactory.getLogger(ThreadDemo.class);privateStringtaskName;publicStringgetTaskName(){return......