cainiao3925 2019-12-27 11:55 采纳率: 100%
浏览 1075
已采纳

c++用jsoncpp读取json文件并,有数千个数据,求把这些数据转成数组?

我有一个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;
}
  • 写回答

2条回答 默认 最新

  • 铲灰 2019-12-27 17:10
    关注

    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"
    }
    ]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀