JSON运用在文件

#include <iostream>
#include <fstream>
#define JSON_IS_AMALGAMATION
#include "json/json.h"
using std::cout;
using std::endl;

int main(int argc, char** argv) {
Json::Value root;
Json::Reader reader;
std::ifstream config("dev.json", std::ifstream::binary);
if (!reader.parse(config, root, false)) {
cout << "Could not parse json" << endl;
return 1;
}
std::string str = root["redis"].get("host", "localhost").asString();
const char* cstr = root["redis"].get("host", "localhost").asCString();
cout << "1:" << str << endl;
cout << "2:" << cstr << endl;
cout << "3:" << std::string(root["redis"].get("host", "localhost").asCString()) << endl;
config.close();
return 0;
}


void CSettingDlg::SaveConfigure(int model,CString SynchroPath)
{
Json::Value root;
Json::StyledWriter sw;

int nLen=SynchroPath.GetLength();
char *pszTempMult=new char[nLen+1];

WideCharToMultiByte( CP_ACP,0,SynchroPath.GetBuffer(nLen),nLen+1, pszTempMult,nLen+1,NULL,NULL );

//根节点属性
root[ "model" ] = Json::Value( model );
root[ "SynchroPath" ] = Json::Value(pszTempMult);

std::ofstream os;
os.open("ConfigurePath.json",std::ios_base::binary);
if(!os)
{
return ;
}
os<<sw.write(root);
os.close();
delete [] pszTempMult;
}
void CSettingDlg::GetConfigure( int &model,CString &SynchroPath)
{
Json::Reader reader;
Json::Value root;
//从文件中读取
std::ifstream is;
is.open( "ConfigurePath.json" , std::ios_base::binary);
if(!is)
{
return ;
}
if (reader.parse(is,root))
{
model=root["model"].asInt();
SynchroPath=root["SynchroPath"].asString().c_str();
}
is.close();
}

转载于:https://www.cnblogs.com/gd-luojialin/p/10962995.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值