Convert JSON till CSV med C++

Konvertera JSON till CSV

Aspose.Cells stöder konvertering av enkel och inbäddad JSON till CSV. För detta tillhandahåller API:n JsonLayoutOptions och JsonUtility klasser. Klassen JsonLayoutOptions erbjuder val för JSON-layout, som SetIgnoreTitle (ignorerar titeln om arrayen är en egenskap i ett objekt) eller GetArrayAsTable() (behandlar arrayen som ett bord). Klassen JsonUtility bearbetar JSON med layoutalternativ som ställts in med klassen JsonLayoutOptions.

Följande kodexempel visar användningen av klasserna JsonLayoutOptions och JsonUtility för att ladda käljsonfil och generera utdata CSV-fil.

Exempelkod

#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();
}