当前位置: 首页 > article >正文

java解析json

依赖

	<dependency>
		<groupId>com.fasterxml.jackson.dataformat</groupId>
		<artifactId>jackson-dataformat-xml</artifactId>
	</dependency>

代码

@PostMapping("parseQAJsonFile")
    @ApiOperation("解析json文件")
    public ResponseResult<Document> parseQAJsonFile(@RequestParam("file")MultipartFile file){
        if (file.isEmpty()) {
            return ResponseResult.error();
        }

        try {
            // 解析JSON文件
            ObjectMapper objectMapper = new ObjectMapper();
            Document document = objectMapper.readValue(new InputStreamReader(file.getInputStream(), StandardCharsets.UTF_8), Document.class);
            return ResponseResult.success(document);
        } catch (IOException e) {
            log.error("上传错误", e);
            return ResponseResult.error();
        }
    }

实体类

@JsonIgnoreProperties(ignoreUnknown = true) 可以忽略没有的字段,否则会报错。
@JsonProperty(“source_file_id”) 可以映射字段

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Map;

@lombok.Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Document {
    @JsonProperty("source_file_id")
    private String sourceFileId;

    @JsonProperty("company_name")
    private String companyName;

    @JsonProperty("organization")
    private String organization;

    @JsonProperty("organization_code")
    private String organizationCode;

    @JsonProperty("approach")
    private String approach;

    @JsonProperty("source")
    private String source;

    @JsonProperty("label")
    private Map<String, String> label;

    @JsonProperty("first_class")
    private String firstClass;

    @JsonProperty("second_class")
    private String secondClass;

    @JsonProperty("third_class")
    private String thirdClass;

    @JsonProperty("fourth_class")
    private String fourthClass;

    @JsonProperty("fifth_class")
    private String fifthClass;

    @JsonProperty("sixth_class")
    private String sixthClass;

    @JsonProperty("title")
    private String title;

    @JsonProperty("author")
    private String author;

    @JsonProperty("summary")
    private String summary;

    @JsonProperty("pubdate_time")
    private String pubdateTime;

    @JsonProperty("effective_time")
    private String effectiveTime;

    @JsonProperty("expiry_time")
    private String expiryTime;

    @JsonProperty("language")
    private String language;

    @JsonProperty("security_level")
    private String securityLevel;

    @JsonProperty("clean_mode")
    private String cleanMode;

    @JsonProperty("applicable_scene")
    private String applicableScene;

    @JsonProperty("clean_rule_code")
    private String cleanRuleCode;

    @JsonProperty("cleaner")
    private String cleaner;

    @JsonProperty("clean_time")
    private String cleanTime;

    @JsonProperty("data_model_code")
    private String dataModelCode;

    @JsonProperty("data")
    private Data data;
}
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

@lombok.Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Data {
    @JsonProperty("genaration_type")
    private String genarationType;

    @JsonProperty("task_type")
    private String taskType;

    @JsonProperty("total_round")
    private int totalRound;

    @JsonProperty("qa_list")
    private List<QA> qaList;
}
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class QA {
    @JsonProperty("question")
    private String question;

    @JsonProperty("answer")
    private String answer;

    @JsonProperty("ref_file")
    private String refFile;

    @JsonProperty("ref_text")
    private String refText;
}

http://www.kler.cn/a/419427.html

相关文章:

  • Qt 面试题学习13_2024-12-1
  • matlab2024a安装
  • 《操作系统 - 清华大学》6 -3:局部页面置换算法:最近最久未使用算法 (LRU, Least Recently Used)
  • C#使用ExcelDataReader读取Xlsx文件为DataTable对象
  • Apache Flink从Kafka中消费商品数据,并进行商品分类的数量统计题
  • 202页MES项目需求方案深入解读,学习MES系统设计规划
  • 【Story】《嵌入式开发中的Bug故事:挑战、解决与成长》
  • MySQL数据库做题笔记
  • vue实现excel导出导入
  • 《黑神话:悟空》启动游戏就提示缺少C++库如何解决?
  • JS实现数据循环顺位获取元素,数组元素不足时,能够从头开始顺位取元素以补足
  • docker中redis查看key、删除key
  • git 清除旧历史提交记录并关联远程仓库
  • Qt 面试题学习11_2024-11-29
  • 力扣--LCR 143. 子结构判断
  • 挑战用React封装100个组件【006】
  • 【Springboot】@Autowired和@Resource的区别
  • TouchGFX设计模式代码实例说明
  • 基于centos7.9容器编排Jumpserver堡垒机
  • Android获取内置卡、内置U盘和挂载U盘路径和内存大小
  • Lerna管理和发布同一源码仓库的多个js/ts包
  • React面试进阶(五)
  • docker rocketmq
  • vue2和vue3两种倒计时CountDown实现
  • 设计模式之单例
  • Leetcode - 周赛425