文档章节

读取配置(初稿)

菅超鹏
 菅超鹏
发布于 2014/06/16 23:15
字数 177
阅读 13
收藏 0
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include "json/json.h"

using namespace std;

struct SStudent
{
    int id;        //编号
    string name;    //姓名
    int age;    //年龄
    string address; //地址
};
typedef vector<SStudent> SeqSStudent; 

/*
void fromJs( SStudent& stu, std::string js )
{
    Json::Value json;
    Json::Reader reader;
    reader.parse( js.c_str(), json );
    
    stu.id = json["id"].asInt();
    stu.name = json["name"].asString();
    stu.age  = json["age"].asInt();
    stu.address = json["address"].asString();    
} 
*/

void fromJs( SStudent& stu, Json::Value jv)
{
    stu.id = jv["id"].asInt();
    stu.name = jv["name"].asString();
    stu.age = jv["age"].asInt();
    stu.address = jv["address"].asString();

}

void loadFile(const std::string& file, SeqSStudent& seq)
{
    Json::Value json;
    Json::Reader reader;

    ifstream ifs ( file.c_str() );
    reader.parse( ifs, json );
    SStudent stu;
    for( Json::Value::UInt i = 0; i < json.size(); ++ i )
    {
        fromJs( stu, json[i] );
        seq.push_back( stu );    
    }
}


int main(int argc, char* argv[])
{
    SeqSStudent seqStu;
    loadFile("student.json", seqStu);    
    
    cout << "begin print" << endl;
    
    for(SeqSStudent::const_iterator cit = seqStu.begin(); cit != seqStu.end(); ++cit)
    {
        cout << "id:" << cit->id << "\tname: " << cit->name << "\tage: " << cit->age << "\tAddress: " << cit->address << endl;;
    }
    
    cout << "end print" << endl;

    return 0;
}


© 著作权归作者所有

共有 人打赏支持
菅超鹏
粉丝 0
博文 10
码字总数 2856
作品 0
广州
程序员
公司抽奖的简单代码

初稿逻辑: 主持人宣布开始抽取三等奖(从三等奖,到二等奖,一等奖), 开始进行抽奖转盘,转盘停在了某个人上(系统读取到了已经抽到奖的员工) 抽取到的人拿奖之前,需要回答从题库里抽到...

熊猫88
2016/01/26
218
2
DICOM学习参考

http://dicom.offis.de/dcmtk.php.en http://blog.csdn.net/ningyaliuhebei/article/details/23919401 DICOM:DICOM标准学习路线图(初稿) http://blog.csdn.net/zssureqh/article/details/......

qt_plus
2016/11/08
12
0
NTP配置实践

前言 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。不管是平时使用的私人计算机还是在工作中搭建的服务器集群。时间的统一性和准确性是十分重...

技术mix呢
2017/10/19
0
0
Bottle-0.13 文档中文翻译

Bottle-0.13 文档中文翻译,来自官方github,在之基础上加以补充完善。 內容目录 教程 安装 开始: “Hello World” URL映射 生成内容 请求数据 (Request Data) 模板 插件 开发 部署 词汇表 ...

lalamina
2016/05/29
173
0
python写一个通讯录之step by step

编写过程: 第一步:手动代码堆积 第二步:函数复用 第三步:数据持久化之数据保存 第四步:数据持久化之数据读取 第五步:数据持久化之数据删除 第六步:数据持久化之数据更新 初稿—》数据...

lovelace521
2015/03/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
21分钟前
1
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
25分钟前
1
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
35分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
36分钟前
1
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部