Module data.yaml

ballerina/data.yaml Ballerina library

0.1.0
Ballerina YAML Data Library

The Ballerina data.yaml library provides robust and flexible functionalities for working with YAML data within Ballerina applications. This library enables developers to seamlessly integrate YAML processing capabilities, ensuring smooth data interchange and configuration management.

Key Features

  • Versatile Input Handling: Convert YAML input provided as strings, byte arrays, or streams of byte arrays into Ballerina's anydata sub-types, facilitating flexible data processing.
  • Data Projection: Efficiently project data from YAML documents and YAML streams, allowing for precise data extraction and manipulation.
  • Ordered Data Representation: Employ tuples to preserve the order of elements when dealing with YAML document streams of unknown order, ensuring the integrity of data sequences.
  • Serialization: Serialize Ballerina values into YAML-formatted strings, enabling easy generation of YAML content from Ballerina applications for configuration files, data storage, or data exchange purposes.

Usage

Converting external YAML document to a record value

For transforming YAML content from an external source into a record value, the parseString, parseBytes, parseStream functions can be used. This external source can be in the form of a string or a byte array/byte-block-stream that houses the YAML data. This is commonly extracted from files or network sockets. The example below demonstrates the conversion of an YAML value from an external source into a record value.

Copy
import ballerina/data.yaml;
import ballerina/io;

type Book record {|
    string name;
    string author;
    int year;
|};

public function main() returns error? {
    string yamlContent = check io:fileReadString("path/to/<file-name>.yaml");
    Book book = check yaml:parseString(yamlContent);
    io:println(book);
}

Make sure to handle possible errors that may arise during the file reading or YAML to anydata conversion process. The check keyword is utilized to handle these errors, but more sophisticated error handling can be implemented as per your requirements.

Serialize anydata value to YAML

The serialization of anydata value into YAML-formatted strings can be done in the below way.

Copy
import ballerina/data.yaml;
import ballerina/io;

public function main() returns error? {
    json content = {
        name: "Clean Code",
        author: "Robert C. Martin",
        year: 2008
    };
    string yamlString = check yaml:toYamlString(content);
    io:println(yamlString);
}

Import

import ballerina/data.yaml;Copy

Metadata

Released date: 4 months ago

Version: 0.1.0

License: Apache-2.0


Compatibility

Platform: java17

Ballerina version: 2201.10.0

GraalVM compatible: Yes


Pull count

Total: 2

Current verison: 2


Weekly downloads


Source repository


Keywords

yaml


Contributors

Other versions

0.1.0