C++ 如何使用C++;

C++ 如何使用C++;,c++,json,csv,C++,Json,Csv,是否有任何现有的标准框架工程可以做到这一点?目前,我正在将csv字段转换为一个数组,然后再转换为一个JSON格式的数组,这非常缓慢。我想知道是否有任何可用的标准框架或任何其他快速方法?该库允许您无需额外的CSV数据数组即可完成此操作: #include <iostream> #include "jsoncons/json.hpp" #include "jsoncons_ext/csv/csv.hpp" using namespace std; using namespace jso

是否有任何现有的标准框架工程可以做到这一点?目前,我正在将csv字段转换为一个数组,然后再转换为一个JSON格式的数组,这非常缓慢。我想知道是否有任何可用的标准框架或任何其他快速方法?

该库允许您无需额外的CSV数据数组即可完成此操作:

#include <iostream>
#include "jsoncons/json.hpp"
#include "jsoncons_ext/csv/csv.hpp"

using namespace std;
using namespace jsoncons;
using namespace jsoncons::csv;

int main(int argc, char** argv) {

    json result = decode_csv<json>(cin);

    cout << result << endl;

    return 0;
}
在Windows上,它可能是:

> convert < data.csv

要编译所有内容,您必须将文件夹
jsons
jsons\u ext
放入您的include目录中。

可能重复:我发布了一个变体,它应该更快,因为它不使用多个数组(见下文)。希望有帮助。除此之外,当你发布关于这个问题的代码的重要部分时,它总是很有用的。你有一个小问题,那就是CSV文件没有真正的标准。嗨,谢谢你的代码?但是这个代码有效吗?如何输入csv文件名?我试着使用visual studio 2013,我在运行它之后给出了文件名,但它不起作用(它只是保持不变,似乎没有任何作用),如果可能的话,你能给出编译和执行指令吗,我是新手。和可能的输入/输出。这有一个问题,这不是数字,这里的一切都是字符串。我的csv文件是(name,lname,age\n xyz,p,20\n abc,q,25),它将给出[[“name”,“lname”,“age”],[“xyz”,“p”,“20”],[“abc”,“q”,“25”]],age不应该有双引号,我希望数据的形式是{“name”:“xyz”,“lname”:“p”,“age”:20}等等。这个库支持吗?有那个库的文档。此外,您还可以轻松地覆盖它。也许是一个新问题;)。目前它还没有起作用。json_deserializer.hpp-找不到它(我已经更新了代码以使用更新版本的JSONCS)。
> convert < data.csv
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <stdexcept>

#include "jsoncons/json.hpp"
#include "jsoncons_ext/csv/csv.hpp"

using namespace std;
using namespace jsoncons;
using namespace jsoncons::csv;

int main(int argc, char** argv) {
    try {
        vector<string> arguments(argv + 1, argv + argc);

        if (arguments.size() != 2)
            throw runtime_error("usage: convert <input> <output>");

        ifstream input(arguments[0]);
        ofstream output(arguments[1]);

        if (!input.is_open())
            throw runtime_error(arguments[0] + ": open failed");

        if (!output.is_open())
            throw runtime_error(arguments[1] + ": open failed");

        json result = decode_csv<json>(input);

        output << result << endl;
    }
    catch (exception& e) {
        cout << e.what() << endl;
    }

    return 0;
}
$ convert data.csv data.json