You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ballerina中将JSON转换为YAML并进行Base64编码?

在Ballerina中将JSON转换为YAML并进行Base64编码

Ballerina的ballerina/yaml库(0.3.0版本)确实没有提供直接的JSON到YAML转换方法,但可以通过**JSON转Ballerina映射(map)**再序列化的方式实现,步骤如下:

实现步骤

  1. 将JSON数据转换为map<anydata>类型(Ballerina的通用映射类型);
  2. 使用yaml:write方法将映射序列化为YAML字符串;
  3. 对YAML字符串执行Base64编码。

完整代码示例

import ballerina/json;
import ballerina/yaml;
import ballerina/encoding;
import ballerina/io;

public function main() returns error? {
    // 1. 定义或读取JSON输入
    // 方式一:直接构造JSON变量
    json inputJson = {
        "user": {
            "name": "John Doe",
            "email": "john@sample.com",
            "age": 20
        },
        "product": {
            "name": "Shoes",
            "price": 100
        }
    };

    // 方式二:从JSON文件读取
    // json inputJson = check json:readFile("input.json");

    // 2. 将JSON转换为map<anydata>
    map<anydata> dataMap = check inputJson.cloneWithType();

    // 3. 序列化为YAML字符串
    string yamlStr = check yaml:write(dataMap);
    io:println("转换后的YAML:\n", yamlStr);

    // 4. 执行Base64编码
    string base64Encoded = encoding:base64Encode(yamlStr);
    io:println("\nBase64编码结果:\n", base64Encoded);
}

代码说明

  • cloneWithType():将动态的json类型转换为静态的map<anydata>,这是yaml:write方法要求的输入类型;
  • yaml:write():将映射结构序列化为标准YAML格式,输出与你需求的格式完全一致;
  • encoding:base64Encode():直接对YAML字符串进行Base64编码,得到最终结果。

内容的提问来源于stack exchange,提问作者ThisaruG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:25:15