Java-charles导出Json文件转成yaml文件

目标:

从charles抓包导出json文件,可以自动转成Yaml文件作为测试用例来使用

思路:

网上没有找到现成的包,所以自己来实现,如果网友们有什么更好的方法,可以留言区给与提示,感谢大家。

json文件->File对象->用例对象->yaml文件

1.先将charles文件(Json格式的)转换成对象JsonFileDto
2.再将转换对象JsonFileDto中需要提取的属性,保存成一个新对象CaseYamlFileDto
3.将JsonFileDto 转换成yaml文件

实现:

1.导入charles文件,放入data/目录下

[
    {
   
        "status":"COMPLETE",
        "method":"GET",
        "protocolVersion":"HTTP/1.1",
        "scheme":"http",
        "host":"",
        "port":null,
        "actualPort":80,
        "path":"/",
        "query":"userExtendId=2079&userId=1879",
        "tunnel":false,
        "keptAlive":false,
        "webSocket":false,
        "remoteAddress":",
        "clientAddress":"/127.0.0.1",
        "clientPort":61786,
        "times":{
   
            "start":"2021-01-20T14:59:18.169+08:00",
            "requestBegin":"2021-01-20T14:59:18.183+08:00",
            "requestComplete":"2021-01-20T14:59:18.184+08:00",
            "responseBegin":"2021-01-20T14:59:18.328+08:00",
            "end":"2021-01-20T14:59:18.329+08:00"
        },
        "durations":{
   
            "total":157,
            "dns":2,
            "connect":9,
            "ssl":null,
            "request":1,
            "response":1,
            "latency":144
        },
        "speeds":{
   
            "overall":"7337",
            "request":"535000",
            "response":"617000"
        },
        "totalSize":"1152",
        "request":{
   
            "sizes":{
   
                "headers":535,
                "body":0
            },
            "mimeType":null,
            "charset":null,
            "contentEncoding":null,
            "header":{
   
                "firstLine":"GET /studyApi/study/V3/index?userExtendId=2079&userId=1879 HTTP/1.1",
                "headers":[
                    {
   
                        "name":"deviceType",
                        "value":"0"
                    },
                    {
   
                        "name":"appVersion",
                        "value":"2.8.0"
                    },
                    {
   
                        "name":"Accept",
                        "value":"*/*"
                    },
                    {
   
                        "name":"appName",
                        "value":"da-cloudclass-app"
                    },
                    {
   
                        "name":"sign",
                        "value":"cd0680b4364dc4fc1d221fec49362719"
                    },
                    {
   
                        "name":"versionCode",
                        "value":"27"
                    },
                    {
   
                        "name":"token",
                        "value":"3e81038f5647da4928276112923c40b5"
                    },
                    {
   
                        "name":"timeStamp",
                        "value":"1611125957213"
                    },
                    {
   
                        "name":"osVersion",
                        "value":"14.0"
                    },
                    {
   
                        "name":"osType",
                        "value":"ios"
                    },
                    {
   
                        "name":"model",
                        "value":"iPhone11"
                    },
                    {
   
                        "name":"debugMode",
                        "value":"0"
                    },
                    {
   
                        "name":"uniqueId",
                        "value":"da7a5e4ea36357d6eb7f187e92bae6a593355179"
                    },
                    {
   
                        "name":"Content-Length",
                        "value":"0"
       
可以使用以下步骤将 CSV 文件换为 YAML 文件: 1. 读取 CSV 文件并解析数据。 2. 将 CSV 数据换为 YAML 格式。 3. 将 YAML 数据写入新的文件中。 以下是一个 Java 代码示例,可以将 CSV 文件换为 YAML 文件: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.yaml.snakeyaml.Yaml; public class CsvToYamlConverter { public static void main(String[] args) { String csvFile = "input.csv"; String yamlFile = "output.yaml"; List<Map<String, Object>> data = readCsv(csvFile); writeYaml(yamlFile, data); } public static List<Map<String, Object>> readCsv(String csvFile) { List<Map<String, Object>> data = new ArrayList<>(); try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { String line; String[] headers = br.readLine().split(","); while ((line = br.readLine()) != null) { String[] values = line.split(","); Map<String, Object> record = new LinkedHashMap<>(); for (int i = 0; i < headers.length; i++) { record.put(headers[i], values[i]); } data.add(record); } } catch (Exception e) { e.printStackTrace(); } return data; } public static void writeYaml(String yamlFile, List<Map<String, Object>> data) { try (FileWriter writer = new FileWriter(yamlFile)) { Yaml yaml = new Yaml(); yaml.dump(data, writer); } catch (Exception e) { e.printStackTrace(); } } } ``` 在此示例中,我们使用 `readCsv` 函数将 CSV 文件读取并解析为一个包含 `Map` 对象的列表。然后,我们使用 `writeYaml` 函数将数据写入 YAML 文件中。 请注意,此示例使用 SnakeYAML 库来执行 YAML 的读写操作。在运行此代码之前,需要将 SnakeYAML 库添加到项目的依赖项中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值