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(); //使用完后记得关闭文件
}

时间: 2024-08-02 15:10:39

vc中json文件的读取、修改和添加字段的方法的相关文章

Android 读取assets文件夹中json文件

这里要介绍一下 读取assets文件夹中json文件 转换成list 集合 只接看代码 非常简单 public static List<State> getStates(Context context) { InputStream is = null; ByteArrayOutputStream bos = null; try { is = context.getAssets().open("area.json"); bos = new ByteArrayOutputStr

[转]VC++中对文件的写入和读取

本文转自:http://blog.csdn.net/fanghb_1984/article/details/7425705 本文介绍两种方法对文件进行读取和写入操作:1.采用fstream类:2.采用CStdioFile类. CStdioFile继承自CFile,一个CStdioFile对象代表一个用运行时函数fopen 打开的C 运行时流式文件. C++中的fstream类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O.stream类有两个重要的运算符:插入器(<<)和析

DSP中cmd文件(待修改)

DSP中cmd文件(待修改) CMD 的专业名称叫链接器配置文件,是存放链接器的配置信息的,其中比较关键的就是MEMORY和SECTIONS两个伪指令的使用. DSP工程文件夹中有两个cmd文件,其中一个为linker.cmd;另一个为c6455.cmd.c6455.cmd文件在工程中.工程目录下的文件夹中.map文件里有section allocation map可以查看产生的"段".查看 .map 文件中"output section"那一列,那些长度(leng

cocos2dx 3.X 中 json 文件生成与读取

Cocos2d-x 3.0 加入了rapidjson库用于json解析.位于项目的cocos2d/external/json下. rapidjson 是一个不需要包含 .lib 和 .dll 即可运行的可见代码库.项目 wiki 见这里.下面通过两个实例来深入了解它在 cocos2dx 中的用法. 生成JSON文件并保存 #include "CCStdC.h" #include "cocos2d.h" #include "json/document.h&q

八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件

一.我们有一个JSON文件,如下: { "在野": [ { "城池": 0, "武将": 74, "登场年": 190 }, { "城池": 0, "武将": 11, "登场年": 208 }, { "城池": 29, "武将": 78, "登场年": 198 } ], "跟随": [ {

通过IO文件流读取 修改build.prop配置文件

原始配置文件build.prop 如下图: 我们主要修改红色框框中的属性值 ro.product.model ro.product.brand ro.product.board ro.product.manufacturer 写一段测试程序:如下: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import jav

json文件的读取

在客户端读取后台的json文件,使用jquery的$.getJSON,读取后台文件内容. jQuery中的$.getJSON( )方法函数主要用来从服务器加载json编码的数据,它使用的是GET HTTP请求.使用方法如下: $.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] ) url是必选参数,表示json数据的地址:data是可选参数,用于请求数据时发送数据参数:success是可参数,这是一个回调函数,用于处理请求

【转】VC中对文件的读写

原文网址:http://www.cnblogs.com/LJWJL/archive/2012/10/06/2712466.html 注意: 1.由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容 2.电脑处理文本型和二进制型的不同 (因为电脑只认识二进制格式) 方法一 :用C++的方法 // 写文件ofstream ofs("4.txt"); // 如果我们要用这个类 我们就需要先#include <fstream.h> ofs.write("hello&quo

VC中对文件的读写

http://www.cnblogs.com/LJWJL/archive/2012/10/06/2712466.html 注意: 1.由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容 2.电脑处理文本型和二进制型的不同 (因为电脑只认识二进制格式) 方法一 :用C++的方法 // 写文件ofstream ofs("4.txt"); // 如果我们要用这个类 我们就需要先#include <fstream.h> ofs.write("hello",st