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