首页 > 编程语言 >java读取yaml文件并转化成json格式数据

java读取yaml文件并转化成json格式数据

时间:2023-12-25 11:34:25浏览次数:39  
标签:return String yaml json fieldName java fieldValue

一、在maven项目中导入依赖

        <!--yaml文件转化成json格式-->
         <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>1.29</version>
        </dependency>
        <!--json格式转化-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.13.0</version>
        </dependency>

二、编辑yanl文件

apiName: token
description: 获取用户登录测试环境需要的token
url: http://cas-uat.kye.com
request:
  method: POST
  path: /cas_server/v2/oauth/token
  headers:
    Content-Type: application/json
  body:
    service: http://edge.uat.erp.com/#/
    account: 612528
    password: i7ytg4VKUaOAnzQvBw6hlixDQgz5
    device_id: fb516938c8227cc5ca1ec5e0be661a34
    app_id: gj_xdbvffz-hYOdFXSRlMg==
    grant_type: password
    data: mJ2T6sNCN1koP808YI6SCw3guuKr
validate:
  status_code: 200
  response_body:
    - key: success
      value: true
      type: string
    - key: code
      value: 0
      type: integer

三、读取yaml文件并转化成json格式字符串

/**
     * @param filename yaml文件名称
     * @return 返回yaml文件中对应的json数据
     */
    public static String yamlToJson(String filename) {
        String jsonData;
        try {
            // 创建Yaml对象
            Yaml yaml = new Yaml();
            // 打开文件输入流
            FileInputStream input = new FileInputStream(filename);
            // 读取整个文件为一个Map对象,如果yaml文件为列表,则数据类型为list
            Map<String, Object> data = yaml.load(input);
            // 创建ObjectMapper对象用于将数据转换为JSON
            ObjectMapper mapper = new ObjectMapper();
            // 启用格式化输出
            mapper.enable(SerializationFeature.INDENT_OUTPUT);
            // 将数据转换为JSON字符串
            jsonData = mapper.writeValueAsString(data);
            // 返回读取的数据
            return jsonData;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

四、提取json字符串中制定的key值

//处理json格式数据
    public static String handleJsonResponse(String response, String field) {
        if (StringUtils.isBlank(field)) {
            return response;
        }
        //将json格式的字符串转化成json对象
        JSONObject jsonObject = JSON.parseObject(response);
        return getFieldValue(jsonObject, field);
    }

    //提取json对象中某个字段的值
    public static String getFieldValue(JSONObject jsonObject, String fieldName) {
        for (String key : jsonObject.keySet()) {
            Object value = jsonObject.get(key);
            if (key.equals(fieldName)) {
                return value.toString();
            } else if (value instanceof JSONObject) {
                String fieldValue = getFieldValue((JSONObject) value, fieldName);
                if (fieldValue != null) {
                    return fieldValue;
                }
            } else if (value instanceof JSONArray jsonArray) {
                String fieldValue = getFieldValue(jsonArray, fieldName);
                if (fieldValue != null) {
                    return fieldValue;
                }
            }
        }
        return null;
    }

    //提取json对象中某个字段的值
    public static String getFieldValue(JSONArray jsonArray, String fieldName) {
        for (Object objectValue : jsonArray) {
            if (objectValue instanceof JSONObject) {
                String fieldValue = getFieldValue((JSONObject) objectValue, fieldName);
                if (fieldValue != null) {
                    return fieldValue;
                }
            } else if (objectValue instanceof JSONArray) {
                String fieldValue = getFieldValue((JSONArray) objectValue, fieldName);
                if (fieldValue != null) {
                    return fieldValue;
                }
            }
        }
        return null;
    }

标签:return,String,yaml,json,fieldName,java,fieldValue
From: https://www.cnblogs.com/faith007/p/17925764.html

相关文章

  • java md5图片内容加密
    在Java中,你可以使用Java的内置类来生成MD5哈希值。下面是一个示例,展示了如何使用Java将图片内容进行MD5加密:importjava.io.*;importjava.security.*;publicclassImageToMD5{publicstaticvoidmain(String[]args){try{//读取图片文件......
  • 推荐给程序员的chrome扩展插件:gitzip for github下载单个GitHub仓库中的文件;json-hand
    推荐清单gitzipforgithub下载单个GitHub仓库中的文件双击文件,勾选文件前面的复选框,可以一次性选择多个文件json-handle格式化json......
  • 基于java斗车交易系统设计与实现
    21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对斗车交易系统进行了介绍,包括......
  • Java面试小练(十二)
    1).@RequestParam、@RequestBody、@PathVariable是SpringMVC中处理请求参数的三个注解。@RequestParam:用于处理URL中的请求参数,如?name=value。通过@RequestParam注解,可以指定参数的名称、required、defaultValue等属性。@RequestBody:用于处理请求体中的数据,如JSON......
  • 十五.JAVA.MAP.工具类,泛型
    嵌套类/内置类/内部类/内部接口K:keyV:valueE:elementR:ReturnTypeT:typeMap<K,V>:存储的是键值对。每个键值对成为映射项(Entry);键唯一,值是可重复的;每个键最多只能映射到一个值。HashMap:键采用哈希表结构,允许null键null值,线程不安全Like......
  • 十六,JAVA IO流
    //static<T>List<T> emptyList()  //     返回空的列表(不可变的)。  //static<K,V>Map<K,V> emptyMap()  //     返回空的映射(不可变的)。  //static<T>Set<T> emptySet()  //     返回空的set(不可变的)。......
  • Java基础-Spring篇
    Spring框架的七大模块SpringCore:框架的最基础部分,提供IoC容器,对bean进行管理。SpringContext:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能。SpringDAO:提供了JDBC的抽象层,还提供了声明性事务管理方法。SpringORM:提供了JPA、JDO、Hibernate......
  • Java静态类
    在Java中,静态类是一种特殊的类,它不能被实例化。静态类主要用于工具类或实现某些特定功能,例如工厂模式中的工厂类。要声明一个静态类,可以使用static关键字,如下所示:java复制代码publicstaticclassStaticClass{//静态类的成员和方法}静态类的特点如下:不能被实......
  • java基础语法api之随机数的介绍以及案例应用
    一:概述在实际开发应用中,我们都会看到,有许多的场景中需要使用到随机不确定的数。在这时,我们就需要用到API中的Random类。二:具体说明<1>JDK_API帮助文档中的说明Random:-该类的实例用于生成随机数构造方法:-Random():创建一个新的随机数生成器成员方法-intnextInt(intbound):获......
  • JavaWebDay4
    一:maven什么是maven:maven是apache旗下的一个开源项目,是一款用于管理和构建Java项目的工具maven的作用:MAVEN项目的目录配置maven的环境的两种方法 导入meaven所写的exclusion应该在不想间接依赖的外面级写,比如a依赖b,b依赖c,那么不想要c的时候则在写依赖b的后面写ex......