Skip to content

Commit

Permalink
Add bbe for convert csv string into records
Browse files Browse the repository at this point in the history
  • Loading branch information
SasinduDilshara committed Sep 24, 2024
1 parent 34561e5 commit c6b6057
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 0 deletions.
29 changes: 29 additions & 0 deletions examples/csv-string-to-record-array/csv_string_to_record_array.bal
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import ballerina/data.csv;
import ballerina/io;

type Book record {
string name;
string author;
decimal price;
string publishedDate;
};

type BriefBookInfo record {|
string name;
string author;
|};

public function main() {
string csvString = string `name,author,price,publishedDate
Effective Java,Joshua Bloch,45.99,2018-01-01
Clean Code,Robert C. Martin,37.50,2008-08-01`;

// Convert the CSV string to a record array
Book[]|csv:Error bookRecords = csv:parseString(csvString);
io:println(bookRecords);

// Convert the CSV string to a record array with data projection.
// In here only the name and author fields are selected.
BriefBookInfo[]|csv:Error briefBookRecords = csv:parseString(csvString);
io:println(briefBookRecords);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Convert CSV string into Ballerina record array

The ballerina `data.csv` library offers a range of functions for converting CSV strings into Ballerina record arrays, enabling developers to parse CSV string data into structured records while allowing for the selection of specific fields within the expected record array.

::: code csv_string_to_record_array.bal :::

::: out csv_string_to_record_array.out :::
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
description: This BBE demonstrates conversion of CSV string into a Ballerina record array with and without data projection.
keywords: ballerina, ballerina by example, bbe, csv, csv string, record, record array, parseString, csv data module, data.csv, data projection
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
$ bal run csv_string_to_record_array.bal
[{"name":"Effective Java","author":"Joshua Bloch","price":45.99,"publishedDate":"2018-01-01"},{"name":"Clean Code","author":"Robert C. Martin","price":37.5,"publishedDate":"2008-08-01"}]
[{"name":"Effective Java","author":"Joshua Bloch"},{"name":"Clean Code","author":"Robert C. Martin"}]
14 changes: 14 additions & 0 deletions examples/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -4700,6 +4700,20 @@
}
]
},
{
"title": "CSV data",
"column": 3,
"category": "Common libraries",
"samples": [
{
"name": "Convert CSV string into a record array",
"url": "csv-string-to-record-array",
"verifyBuild": true,
"verifyOutput": true,
"isLearnByExample": true
}
]
},
{
"title": "Constraint",
"column": 3,
Expand Down

0 comments on commit c6b6057

Please sign in to comment.