使用配置cppjson库,使用cppjson读取json文件

使用配置cppjson库,使用cppjson读取json文件

配置cppjson库

本文使用已经生成好的lib文件和头文件,文末附有下载链接。也可以在官网下载然后生成。本文使用环境为vs2013。

准备文件

将json的头文件复制到自己项目的include文件夹中,并将lib_json.lib文件复制到lib文件夹。

配置vs2013

右键项目
属性
配置属性
C/C++
常规
附加包含目录
include文件夹路径
链接器
附加链接库目录
lib文件夹路径
输入
附加依赖项
lib_json.lib

测试Demo

/*!
* \file Demo.h
* \brief 用来测试cppjson库
*
*详细概述
*
* \author hthou
* \version 0.0.1
* \date 2021/07/08
*/

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <fstream>
//添加需要的头文件
#include "include/json/json.h"

using namespace std;

int main(int argc, _TCHAR* argv[])
{
	cout << "测试json写入" << endl;
	Json::Value jsonRoot;
	Json::Value jsonItem;
	jsonItem["item1"] = "123";
	jsonItem["item2"] = "456";
	jsonItem["item3"] = 3;
	jsonRoot.append(jsonItem);
	jsonItem.clear();//清除上面已经赋值的项
	jsonItem["First"] = 1;
	jsonItem["Second"] = 2.0F;
	jsonItem["Third"] = "3";
	jsonRoot.append(jsonItem);


	cout << "测试json写入到文件" << endl;
	ofstream ofs;
	ofs.open("test1.json");
	ofs << jsonRoot.toStyledString();
	ofs.close();

	cout << "测试json读取" << endl;
	string sJson = jsonRoot.toStyledString();
	jsonRoot.clear();
	Json::Reader jsonReader;
	//使用parse函数将字符串转化为json对象
	if (!jsonReader.parse(sJson, jsonRoot))
	{
		return -1;
	}
	for (auto it = jsonRoot.begin();
		it != jsonRoot.end();
		it++)
	{
		for (auto sit = it->begin();
			sit != it->end();
			sit++)
		{
			cout << sit.key() << "\t" << sit.name() << endl;
		}
	}


	cout << "测试读取json文件" << endl;
	ifstream ifs;
	ifs.open("test1.json");

	jsonRoot.clear();

	if (!jsonReader.parse(ifs, jsonRoot))
	{
		ifs.close();
		return -1;
	}



	int item = 0;
	for (auto it = jsonRoot.begin();
		it != jsonRoot.end();
		it++)
	{
		for (auto sit = it->begin();
			sit != it->end();
			sit++)
		{

			cout << sit.name() << endl;
			cout << jsonRoot[item][sit.name()] << endl;
		}
		++item;
	}
	return 0;
}

测试结果

测试结果

cppjson文件下载

https://download.csdn.net/download/qq_40815249/20086480?spm=1001.2014.3001.5501

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值