{"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<string.h>
#include<json/json.h>
#include<iostream>
#include<fstream>
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 << "文件打开错误"<<endl;return;}/*//s70301.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}]}
}
*/if (reader.parse(in, root)){string name = root["name"].asString();//普通键值解析int no_camp = root["no_camp"].asInt();int save_state = root["save_state"].asInt();int state_locked = root["state_locked"].asInt();int default_state = root["default_state"].asInt();int recover_state = root["recover_state"].asInt();cout << "name 是  " << name << endl;cout << "no_camp is  " << no_camp << endl;cout << "save_state is  " << save_state << endl;cout << "state_locked is  " << state_locked << endl;cout << "default_state is  " << default_state << endl;cout << "recover_state is  " << recover_state << endl;//string str ="雄霸天下";//cout << str << endl;string relive_type = root["relive"]["type"].asString();int  relive_relive_item = root["relive"]["relive_item"].asInt();cout << "relive_type is  " << relive_type << endl;cout << "relive_camp_item is  " << relive_relive_item << endl;int sz = root["relive"]["state"].size();for (int i = 0; i < sz; i++)//简单数组解析{int state = root["relive"]["state"][i].asInt();cout<<"state is" << state;}cout <<  endl;int size = root["relive"]["camp_relive"].size();for (int i = 0; i < size; i++)//复杂数组解析{int posx = root["relive"]["camp_relive"][i]["posX"].asInt();int posy = root["relive"]["camp_relive"][i]["posY"].asInt();//cout << posx << endl;cout << "posx is  " << posx << "    posy is  " << posy << endl;}}
}

输出结果为:

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

使用jsoncpp解析json文件相关推荐

  1. 使用C/C++解析json文件

    目录 为什么? 怎么做? 为什么? 举个例子,我们在使用C/C++进行深度学习模型的测试,由于测试过程中可能有许多参数要传给model,比如在进行目标检测时,要传入nms阈值等.我们要最优化测试结果, ...

  2. Java性能优化:正确的解析JSON文件

    为什么80%的码农都做不了架构师?>>>    数据收集服务平均1小时OOM(java.lang.OutOfMemoryError: GC overhead limit exceed ...

  3. python解析json_python解析json文件

    概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态 ...

  4. 如何使用PHP解析JSON文件? [重复]

    本文翻译自:How can I parse a JSON file with PHP? [duplicate] This question already has an answer here: 这个 ...

  5. java解析json文件_Java性能优化:正确的解析JSON文件

    数据收集服务平均1小时OOM(java.lang.OutOfMemoryError: GC overhead limit exceeded)一次,发现都是在下载处理 JSON Atom Feed时OO ...

  6. Python解析json文件

    Python解析json文件 实现代码 import json import sysstdout = sys.stdoutwith open("company.json", &qu ...

  7. 关于 pandas 解析 json 文件和其他类型文件的结果中日期格式数据类型不一致的问题

    问题: 我有两个文件,一个 .csv 文件和一个 .json 文件,数据截图分别如下: 我的目的是解析这些文件,并将结果统一交由下一个程序块进行处理. 在了解到 pandas 可以解析数据文件(csv ...

  8. 解析json文件、执行批量修改sql

    要求:解析json文件,取出其中的参数,修改数据库中的数据 数据量:190万条 使用线程池批量处理sql 1.线程: public class DateHandleThread extends Thr ...

  9. 解析json文件的Go依赖包

    上一篇golang读取json配置文件介绍了使用encoding/json包来解析json文件,但是这种方法在面对结构复杂.字段较多的情况时,解析效率不是很高.上一篇中,我们在解析json文件时,需要 ...

最新文章

  1. 手撸 webpack4.x 配置(一)
  2. 如何用php获取网页表格,PHP获取网页上任意表格中内容的通用程序的制作
  3. Windows Socket五种I/O模型
  4. [机器学习] TF-IDF算法
  5. 《JS权威指南学习总结--6.1原型》
  6. 网络爬虫生成代理ip
  7. Android屏幕大小和密度对照表,以及px、dip、sp等像素单位的解释
  8. sql游标 while_用SQL Server中的排名函数替换SQL While循环和游标,以提高查询性能
  9. I - Destroy Walls (HDU - 6187)
  10. pandas数据处理实践五(透视表pivot_table、分组和透视表实战Grouper和pivot_table)
  11. 极客大学架构师训练营 组件设计原则 安全架构 防火墙ModSecurity 第21课 听课总结
  12. 测试之CR规范及错误列表
  13. python背景透明_Python生成透明背景图片
  14. 自定义 View 之雅虎新闻视差动画
  15. RabbitMQ连接超时问题
  16. VideoJS 网页直播实现双击全屏
  17. 用python成为顶级黑客-python绝技:运用python成为顶级黑客 PDF 超清中文版
  18. 深度推荐模型之NFM模型
  19. 用Python绘制皮卡丘
  20. CAD高版本转低版本的方法有哪些?你一定用的到哦

热门文章

  1. Concurrenthashmap的putIfAbsent方法
  2. Python风格总结:迭代器与生成器
  3. 教育部:“改薄”工程实施中预防拖欠农民工工资
  4. SSH 上传下载文件
  5. 如何使电脑不会重复启动同一个进程
  6. Style Lessons in Clarity and Grace (11th Edition)中文翻译
  7. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)...
  8. Linux Matlab服务器进一步改造成Application Server(应用程序服务器)
  9. 从QQ空间热度分析看社区营销
  10. C++数据类型与C#对应关系 c#调用WINDWOS API时,非常有用