Преобразование JSON в CSV с помощью C++
Contents
[
Hide
]
Преобразовать JSON в CSV
Поддержка Aspose.Cells для преобразования простого и вложенного JSON в CSV. Для этого API предоставляет классы JsonLayoutOptions и JsonUtility. Класс JsonLayoutOptions задаёт параметры для форматирования JSON, такие как SetIgnoreTitle (игнорирует заголовок, если массив является свойством объекта) или GetArrayAsTable() (обрабатывает массив как таблицу). Класс JsonUtility обрабатывает JSON, используя установленные параметры разметки с помощью класса JsonLayoutOptions.
Следующий пример демонстрирует использование классов JsonLayoutOptions и JsonUtility для загрузки исходного JSON файла и генерации выходного CSV файла.
Образец кода
#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();
}