JSONをCSVに変換(C++)

JSONをCSVに変換

Aspose.CellsはシンプルなJSONとネストされたJSONの両方をCSVに変換するのをサポートしています。APIはJsonLayoutOptionsおよびJsonUtilityクラスを提供します。JsonLayoutOptionsクラスは、SetIgnoreTitle(配列がオブジェクトのプロパティの場合にタイトルを無視)やGetArrayAsTable()(配列を表として処理)などのJSONレイアウトオプションを提供し、JsonUtilityクラスはJsonLayoutOptionsクラスで設定されたレイアウトオプションを使用してJSONを処理します。

次のコード例では、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();
}