用 C++ 将 JSON 转换为 CSV
Contents
[
Hide
]
将JSON转换为CSV
Aspose.Cells 支持将简单和嵌套的 JSON 转换为 CSV。为此,API 提供了 JsonLayoutOptions 和 JsonUtility 类。JsonLayoutOptions 类提供 JSON 排版的选项,例如 SetIgnoreTitle(如果数组是对象的属性,则忽略标题)或 GetArrayAsTable()(将数组作为表处理)。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();
}