我有一个json文件,现在想把里面的数据读取出来,并转化为数组或是线性表。
文件是这样的,有数千个类似的这样的。我在网上找了很多的教程,但是里面的例子一般都是直接
int comment = root["comment"].asInt();
但是我这里有数千个,而且后面要统计from相同的数量等等,所以想用数组或者是线性表来存储,方便后面。
因为是第一次接触json,完全菜鸟,所以很多概念都不了解,希望各位大神能够给一些简单一点的回答,非常感谢
[
{
"comment": 0,
"from": "北京-北京市-海淀区",
"comments": [],
"to": "河北省-承德市-隆化县",
"score": "0",
"corp": "兴铁物流",
"time": "1398175318.988036"
},
void readFileJson()
{
根据网上的教程就写了一点点,我把添加到了源文件那里,可是好像打不开,运行的话就直接弹出Error poening file
void readFileJson()
{
Json::Reader reader;//json解析
Json::Value root;//表示一个json格式的对象
ifstream in("rating(1).json", ios::binary);
if (!in.is_open())
{
cout << "Error opening file\n";
return;
}
int main()
{
ifstream infile;
///这里好像要有用绝对路径
infile.open("/home/xxx/xxx/xxx/data.json", ios::binary);
if (!infile.is_open())
{
cout << "file open failure" << endl;
return 0;
}
std::string data;
char str[1000] = {0};
while(!infile.eof())
{
infile>>str;
data += str;
memset(str, 0, sizeof(str));
}
infile.close();
Json::Reader reader;
Json::Value root;
if (!reader.parse(data.c_str(), root))
{
return -1;
}
cout << root << endl;
return 0;
}
------json数据,json数据最后一个元素后不能跟逗号(,)--------
[
{
"comment": 0,
"from": "北京-北京市-海淀区",
"comments": [],
"to": "河北省-承德市-隆化县",
"score": "0",
"corp": "兴铁物流",
"time": "1398175318.988036"
},
{
"comment": 0,
"from": "北京-北京市-海淀区",
"comments": [],
"to": "河北省-承德市-隆化县",
"score": "0",
"corp": "兴铁物流",
"time": "1398175318.988036"
}
]