目录
背景
json很好,但实在是太太太太大了,你能理解录两天数据,服务器就被吃掉1T的感受吗?所以,我打算,数据保存使用体积仅为json几分之一,甚至十几分之一的csv格式,然后程序内部使用数据时,再在程序内部csv转json处理。
1.Get jsoncons
jsoncons是一个很棒的库,丝毫不比jsoncpp差,但是对于新手不怎么友好,不管怎样,我们先下载
wget https://github.com/danielaparker/jsoncons.git
由于这是一个纯头文件库,所以我们只需要抠出头文件就好了
cd include
cp -r jsoncons jsoncons_ext 你的项目路径/3rdparty/
2.csv转json示例
下面给出读入csv文件,转ojson,以及输出的示例
#include "jsoncons/json.hpp"
#include "jsoncons_ext/csv/csv.hpp"
bool ReadCsv(const std::string& csv_path){
//转ojson
std::ifstream csv_stream(csv_path,ios::in);
jsoncons::csv::csv_options options;
options.assume_header(true);
jsoncons::ojson j=jsoncons::csv::decode_csv<jsoncons::ojson>(csv_stream,options);
//输出测试
jsoncons::json_options print_options;
print_options.float_format(jsoncons::float_chars_format::fixed);
std::cout<<pretty_print(j,print_options)<<std::endl;
//输出测试2
std::cout<<j[0]["name"].as<std::string>()<<std::endl;
return true;
}