文档章节

读取配置(初稿)

菅超鹏
 菅超鹏
发布于 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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 到底谁是小公猫……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享Trivium的单曲《Throes Of Perdition》 《Throes Of Perdition》- Trivium 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁:...

小小编辑
40分钟前
51
1
基础选择器

注意:本教程参考自网上流传的李兴华老师的jquery开发框架视频,但是苦于没有相应的配套笔记,由我本人做了相应的整理. 本次学习的内容 学习jquery提供的各种选择器的使用,掌握了jquery选择...

江戸川
46分钟前
1
0
Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部