JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式 研究 (二)

这次我们把JSON格式在复杂一点:

比如这样的格式:

{"":[
{"":"","":""},
{"":"","":""},
{"":"","":""}]}


具体数据:

 {"people":[
{"Name":"Eagle","Age":"18","Email":"eaglezzb@gmail.com"},
{"Name":"Porter","Age":"18","Email":"pDDDr@gmail.com"},
{"Name":"EVAL","Age":"18","Email":"EDDa@gmail.com"}]}


下面是完整的编译代码:

有这几个,基本上什么数据都可以用起来了

/

 #include "stdafx.h"
#include <iostream>
#include <fstream> 
#include <string>
#include <Windows.h>
#include "json.h"




TCHAR szFullConfName[2*MAX_PATH + 1] = {0};


void saveStringToFile(void)
{
TCHAR szFilePath[MAX_PATH + 1]; 
GetModuleFileName(NULL, szFilePath, MAX_PATH); 
(_tcsrchr(szFilePath, _T('\\')))[1] = 0;//删除文件名,只获得路径


TCHAR str_url[2*MAX_PATH + 1] = {0};

lstrcat(str_url, szFilePath);
lstrcat(str_url, _T("msg.json") );
//only for log
lstrcat(szFullConfName, str_url);
//


}


int main(int argc, char* argv[])
{
//解析json
//--======================Reader file====================================--
// Reader file and show Json
saveStringToFile();


Json::Value jsReadValue;
std::ifstream in(szFullConfName);
std::string szReadstr;
std::string szReadmsg;


if(in.is_open())
{
while(in>>szReadstr)
szReadmsg += szReadstr;
}


Json::Reader jsReader;


int ret = jsReader.parse(szReadmsg,jsReadValue);


if(ret)


/**
{"":[
{"":"","":""},
{"":"","":""},
{"":"","":""}]}
**/
Json::Value jsArrayReaderValue ;
jsArrayReaderValue = jsReadValue["people"];
int iASize =  jsArrayReaderValue.size();
for ( int i=0; i < iASize;i++ )
{
std::string szName =jsArrayReaderValue[i]["Name"].asString();
std::string szAge =jsArrayReaderValue[i]["Age"].asString();
std::string szEmail =jsArrayReaderValue[i]["Email"].asString();

std::cout<<"Name:"<<szName<<" Age: "<<szAge<<"E-Mail:  "<<szEmail<< std::endl;
}




}



in.close();
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值