Convertir JSON a CSV con C++
Contents
[
Hide
]
Convertir JSON a CSV
Aspose.Cells soporta la conversión de JSON simple y anidado a CSV. Para esto, la API ofrece las clases JsonLayoutOptions y JsonUtility. La clase JsonLayoutOptions proporciona opciones para el diseño del JSON como SetIgnoreTitle (ignora el título si el array es una propiedad de un objeto) o GetArrayAsTable() (procesa el array como una tabla). La clase JsonUtility procesa el JSON usando las opciones de diseño configuradas con la clase JsonLayoutOptions.
El siguiente ejemplo de código demuestra el uso de las clases JsonLayoutOptions y JsonUtility para cargar el archivo JSON fuente y genera el archivo CSV de salida.
Código de muestra
#include <iostream>
#include <fstream>
#include <sstream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
U16String jsonFilePath = srcDir + u"SampleJson.json";
U16String jsonData;
std::ifstream jsonFile(jsonFilePath.ToUtf8().c_str());
if (jsonFile.is_open())
{
std::stringstream buffer;
buffer << jsonFile.rdbuf();
jsonData = U16String(buffer.str().c_str());
jsonFile.close();
}
else
{
std::cerr << "Failed to open JSON file: " << jsonFilePath.ToUtf8().c_str() << std::endl;
return -1;
}
Workbook workbook;
Cells cells = workbook.GetWorksheets().Get(0).GetCells();
JsonLayoutOptions importOptions;
importOptions.SetConvertNumericOrDate(true);
importOptions.SetArrayAsTable(true);
importOptions.SetIgnoreTitle(true);
JsonUtility::ImportData(jsonData, cells, 0, 0, importOptions);
U16String outputFilePath = outDir + u"SampleJson_out.csv";
workbook.Save(outputFilePath);
std::cout << "JSON data imported and workbook saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}