Convert CSV to JSON with C++
Convert CSV to JSON
Aspose.Cells supports converting CSV to JSON. For this, the API provides ExportRangeToJsonOptions and JsonUtility classes. The ExportRangeToJsonOptions class provides the options for exporting range to JSON. The ExportRangeToJsonOptions class has the following properties.
- GetExportAsString(): This exports the string value of the cells to JSON.
- GetHasHeaderRow(): This indicates whether the range contains a header row.
- GetIndent(): Indicates the indent.
The JsonUtility class exports the JSON using the export options set with the ExportRangeToJsonOptions class.
The following code sample demonstrates the use of ExportRangeToJsonOptions and JsonUtility classes to load the source CSV file and prints the JSON output in the console.
Sample Code
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Create load options for CSV format
LoadOptions loadOptions(LoadFormat::Csv);
// Load CSV file
Workbook workbook(srcDir + u"SampleCsv.csv", loadOptions);
// Get the last cell in the worksheet
Cell lastCell = workbook.GetWorksheets().Get(0).GetCells().GetLastCell();
// Set JsonSaveOptions
JsonSaveOptions jsonSaveOptions;
// Create a range from the first cell to the last cell
Range range = workbook.GetWorksheets().Get(0).GetCells().CreateRange(0, 0, lastCell.GetRow() + 1, lastCell.GetColumn() + 1);
// Export the range to JSON
U16String data = JsonUtility::ExportRangeToJson(range, jsonSaveOptions);
// Print JSON
std::cout << data.ToUtf8() << std::endl;
Aspose::Cells::Cleanup();
}
Console Output
[
{
"id": 1,
"language": "Java",
"edition": "third",
"author": "Herbert Schildt",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
},
{
"id": 2,
"language": "C++",
"edition": "second",
"author": "EAAAA",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
},
{
"id": 3,
"language": ".Net",
"edition": "second",
"author": "E.Balagurusamy",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
}
]