使用jsoncpp解析json文件

{
    "name" : "雄霸天下",
    "no_camp" : 0,
	"save_state" : 1,
    "state_locked" : 1,
    "default_state" : 3,
    "recover_state" : 1,
	
	"relive" : 
	{
            "type" : "11",
            "relive_item" : 200000016,
			"state": [100],
			"camp_relive":
			[
				{
					"posX": 4615,
					"posY": 2245
				},
				{
					"posX": 2910,
					"posY": 6378
				},
				{
					"posX": 813,
					"posY": 3589
				}
			]
    }
}

json文件如上,如何配置jsoncpp可以查看配置jsoncpp.

其中一般键名可以直接解析,如no_camp键名对应键值为0;

可以用int no_camp = root["no_camp"].asInt();来解析。

复杂数组可以参考如下代码:

#include
#include
#include
#include
using namespace std;
void ReadFileJson();
int main()
{
	ReadFileJson();
	return 0;
}
void ReadFileJson()
{
	Json::Value root;//定义根节点
	Json::Reader reader;
	ifstream in("C:\\Users\\57273\\Desktop\\s70301.json", ios::binary);//输入json文件的绝对路径
	if (!in.is_open())
	{
		cout << "文件打开错误"<

输出结果为:

使用jsoncpp解析json文件_第1张图片

其中,name键对应 的中文键值“雄霸天下”出现乱码,原因是json的编码方式和vs的编码方式不同,暂未有详细解决方案,后续解决后会写出来。

你可能感兴趣的:(C++,游戏开发)