jso cpp解析读写数据
json write :
{
"array" : [
{
"aaaaaa" : "bbbbbb",
"number" : 999,
"string" : "this is a string"
}
],
"arrnum" : [ null, 1, 2, 3, 4, 5, 6 ],
"name" : "json",
"number" : 666,
"value" : true
} 写数据:
std::string writeJson()
{
using namespace std; Json::Value root;
Json::Value arrayObj;
Json::Value item;
Json::Value iNum; item["string"] = "this is a string";
item["number"] = ;
item["aaaaaa"] = "bbbbbb";
arrayObj.append(item); //直接对jsoncpp对象以数字索引作为下标进行赋值,则自动作为数组
iNum[] = ;
iNum[] = ;
iNum[] = ;
iNum[] = ;
iNum[] = ;
iNum[] = ; //增加对象数组
root["array"] = arrayObj;
//增加字符串
root["name"] = "json";
//增加数字
root["number"] = ;
//增加布尔变量
root["value"] = true;
//增加数字数组
root["arrnum"] = iNum; root.toStyledString();
string out = root.toStyledString(); return out;
}
读数据:
json write :
{
"array" : [
{
"aaaaaa" : "bbbbbb",
"number" : 999,
"string" : "this is a string"
}
],
"arrnum" : [ null, 1, 2, 3, 4, 5, 6 ],
"name" : "json",
"number" : 666,
"value" : true
}
int ReadJson(const std::string & strValue)
{
using namespace std; Json::Reader reader;
Json::Value value; if (reader.parse(strValue, value))
{
//解析json中的对象
string out = value["name"].asString();
cout << "name : " << out << endl;
cout << "number : " << value["number"].asInt() << endl;
cout << "value : " << value["value"].asBool() << endl;
cout << "no such num : " << value["haha"].asInt() << endl;
cout << "no such str : " << value["hehe"].asString() << endl; //解析数组对象
const Json::Value arrayNum = value["arrnum"];
for (unsigned int i = ; i < arrayNum.size(); i++)
{
cout << "arrnum[" << i << "] = " << arrayNum[i];
}
//解析对象数组对象
Json::Value arrayObj = value["array"];
cout << "array size = " << arrayObj.size() << endl;
for(unsigned int i = ; i < arrayObj.size(); i++)
{
cout << arrayObj[i];
}
//从对象数组中找到想要的对象
for(unsigned int i = ; i < arrayObj.size(); i++)
{
if (arrayObj[i].isMember("string"))
{
out = arrayObj[i]["string"].asString();
std::cout << "string : " << out << std::endl;
}
}
} return ;
}
json read :
name : json
number : 666
value : 1
no such num : 0
no such str :
arrnum[0] = null
arrnum[1] = 1
arrnum[2] = 2
arrnum[3] = 3
arrnum[4] = 4
arrnum[5] = 5
arrnum[6] = 6
array size = 1 {
"aaaaaa" : "bbbbbb",
"number" : 999,
"string" : "this is a string"
}
jso cpp解析读写数据的更多相关文章
- 【iOS-cocos2d-X 游戏开发之九】Cocos2dx利用CCSAXParser解析xml数据&CCMutableDictionary使用与注意!
本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/694.html ☞ ...
- 百度地图LBS云平台读写数据操作类
最近写了个叫<行踪记录仪>的手机软件,用了百度云来记录每个用户的最近位置,以便各用户能在地图上找到附近的人,为此写了个类来读写数据,大致如下: import java.util.Array ...
- Qt解析Json数据
1 JSON数据简介 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范) ...
- 解析XML数据
在 Java 程序中读取 XML 文件的过程称为解析 XML 解析 XML 文件的方式 1) DOM 解析 (java 官方提供) 2) SAX 解析(java 官方提供) 3) JDOM 解析(第三 ...
- 分析Python中解析构建数据知识
分析Python中解析构建数据知识 Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记 ...
- jQuey知识点三 解析json数据
1.解析简单数据 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="vie ...
- iOS关于XML解析请求数据
XML数据的请求: 和json请求几乎一样,只有请求参数修改为xml即可: AFHTTPSessionManager *manager = [AFHTTPSessionManager manager] ...
- 使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
- iOS解析XML数据
iOS中解析XML数据的类是 NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSX ...
随机推荐
- 未来一年的13大手机APP开发趋势
无论是欢呼出租车,保存票据,订购披萨还是在线购物,您可以立即联系到什么设备?你的智能手机 这是您需要的朋友,在如何查找信息和简化日常任务方面发挥着不可或缺的作用. 移动技术以光速增长; 我们不能否认手 ...
- word-wrap:表示是否允许流浪器断句,word-break:表示怎样断句
word-wrap: break-word的话,流浪器可以断句,但是是按单词形式断句. 而加上 word-break: break-all的话,单词内部也断句. "whiteSpace&qu ...
- 封装你的协程Unity TaskManager
unity5提供了协程,不过用起来很蛋疼,当然如果是unity2017 你就可以用async await了 提供一个TaskManager来封装协程(github https://github.co ...
- D3学习笔记一
D3学习笔记一 什么是D3? D3(全称Data Driven Documents)是一个用来做Web数据可视化的JavaScript函数库.D3也称之为D3.js. D3是2011年由Mike Bo ...
- 快速部署简单私有云CloudStack(下)
微信公众号:wsy535068621 继续上边的 会给出具体配置
- Struts2拦截器和标签
一.struts2拦截器 1.struts2是框架,封装了很多的功能,struts2里面封装的功能都是在拦截器里面. 2 struts2里面封装了很多的功能,有很多拦截器,不是每次这些拦截器都执行,每 ...
- Java中子类覆盖父类方法所必须满足的条件
因为太喜欢,所以转来,侵删! 参考自:http://www.it165.net/pro/html/201504/39284.html 一.描述 子类重写(覆盖)父类的方法必须满足的条件:1.父类中的方 ...
- mysql 远程链接问题
问题描述: 从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.x ...
- 虚拟机centos笔记整理,持续更新~~
远程拷贝文件:scp -r 文件名 主机名:完整路径名(冒号不能少)拷贝当前windows系统的文件到当前目录:rz -y 查找文件:updatedb 修改数据库locate 文件名 即可查找文件
- Error -4075: File not found. An error occurred merging module <MODULENAME> for feature <FEATURENAME>.
利用Install Shield2010制作安装包的时候一直报这样的错误,原以为是我自己安装包制作流程的问题,又重新做了2个,但是还是出现问题. 解决办法: 查找资料发现是Install Shield ...