vc中json文件的读取、修改和添加字段的方法
前言:
- 本代码涉及到对json文件的读取、修改和添加方法
- WTL中radir button的状态判断和设置可选以及取消可选
示例:
#include <json.h> #include <file_io.h>
代码部分:
//读取下载线路在界面上的radir button中显示 void CMainDlg::read_download_line_from_cfg() { std_string strDownloadLine; file_io<> json_file("c://test.json", "r"); // json_value<> json_values_data; if (json_parse(json_values_data, json_file)) { strDownloadLine = json_values_data["deflink"].get_string(); //读取json文件中deflink字段的值 if (strDownloadLine == "1") { CButton btn; btn.Attach(GetDlgItem(IDC_RADIO_ONE).m_hWnd); btn.SetCheck(true); //wtl中修改radir button状态的方法 json_file.close(); } else if(strDownloadLine == "2") { CButton btn; btn.Attach(GetDlgItem(IDC_RADIO_TWO).m_hWnd); btn.SetCheck(true); json_file.close(); } } } //如果要修改json文件中的值,则需要先读取出来,然后使用json_pretty_write修改 void CMainDlg::update_cfg_config() { file_io<> json_file("c://test.json", "r+"); json_value<> json_values_data; if (json_parse(json_values_data, json_file)) //把json文件读取到json_values_data中 { json_file.close(); } else { return; } bool isNeedUpate = json_values_data["flag"].is_string(); //判断flag字段是不是字符串(这儿用于判断flag字段是否存在) if (isNeedUpate) { return; } json_values_data["deflink"] = "ct"; //修改deflink字段为ct json_values_data["flag"] = "new"; //如果不存在flag,则添加flag字段 json_values_data["notify"] = "http://www.baidu.com"; //添加notify字段 file_io<> f_l_cfg("c://test.json", "w"); json_pretty_write(f_l_cfg, json_values_data, " "); //重新写入test.json文件中 f_l_cfg.close(); //使用完后记得关闭文件 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。