C++入门教程(20)json解析(jsoncpp)
jsoncpp在github上地址:
https://github.com/open-source-parsers/jsoncpp
jsoncpp在使用的时候需要先编译
在window上可以使用cmake工具来编译,官方下载地址:
https://cmake.org/download/
在Linux或者max环境可以先下载jsoncpp到本地,解压后在jsoncpp-master目录下创建一个build目录
打开终端:
cd 到当前build目录
执行命令:
cmake ..
然后执行命令
make
如果顺利的话,编译成功,生成了很多文件。
我们需要在xcode中引入 jsoncpp-master/include/json 目录
在目录jsoncpp-master/lib/下生成了一些库文件我们需要引入到工程
在需要使用的地方添加以下代码即可使用jsoncpp
#include "json/json.h"
json对象的初始化
Json::Value myJson;myJson["name"] = "小明";myJson["score"] = 100;//数组初始化for(int i = 0; i< 10;i++){myJson["index"].append(i);}
json对象转换成字符串:
Json::FastWriter _Writer;std::string myJsonStr = _Writer.write(myJson);cout<< "json转换成字符串 : "<< myJsonStr.c_str() << endl;
字符串解析成json对象
//jsoncpp 解析json字符串char * str = "{\"test\":12}";Json::Reader reader(Json::Features::strictMode());Json::Value _root;std::string sBuffer = (char *)str;if (!reader.parse(sBuffer, _root)){return -1;}else{cout<< "解析字符串得到 test = " << _root["test"].asInt() <<endl;}
基本上常用的操作就是组装一个json对象然后转换成字符串用于服务器数据的下发,客户端传来的字符串可以解析成json对象用于获取客户端传来的数据
完整代码:
#include <iostream>
using namespace std;#include "json/json.h"int main(int argc, const char * argv[]) {// insert code here...//std::cout << "Hello, World!\n";//jsoncpp 初始化json对象Json::Value myJson;myJson["name"] = "小明";myJson["score"] = 100;//数组初始化for(int i = 0; i< 10;i++){myJson["index"].append(i);}//jsoncpp json对象转换成字符串Json::FastWriter _Writer;std::string myJsonStr = _Writer.write(myJson);cout<< "json转换成字符串 : "<< myJsonStr.c_str() << endl;//jsoncpp 解析json字符串char * str = "{\"test\":12}";Json::Reader reader(Json::Features::strictMode());Json::Value _root;std::string sBuffer = (char *)str;if (!reader.parse(sBuffer, _root)){return -1;}else{cout<< "解析字符串得到 test = " << _root["test"].asInt() <<endl;}return 0;
}
运行:
json转换成字符串 : {"index":[0,1,2,3,4,5,6,7,8,9],"name":"\u5c0f\u660e","score":100}解析字符串得到 test = 12
C++入门教程(20)json解析(jsoncpp)相关推荐
- e4a和python如何交互_云水日记-E4A教程:JSON解析案例
一.关于JSON JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子 ...
- 最全面 Nginx 入门教程 + 常用配置解析
http://blog.csdn.net/shootyou/article/details/6093562 个人整理资料,转帖注明出处,谢谢~ Nginx介绍和安装 一个简单的配置文件 模块介绍 常用 ...
- java开发框架emp入门教程,实战解析
咱先来聊聊Redis 像Redis的基础入门,掌握下图这几个列出来的知识点足以了. 进阶的话,就得下点功夫了,事务.主从复制.哨兵.集群等等之类的搞不明白你就上不去呀. 再看美团亿级流量Redis实战 ...
- python快速编程入门教程-python从入门到精通之30天快速学python视频教程
python从入门到精通之30天快速学python视频教程 课程目录: python入门教程-1-Python编程语言历史及特性.mkv python入门教程-2-Python编程语言初接触.mkv ...
- 微服务和VUE入门教程(26): 微服务之turbine
微服务和VUE入门教程(26): 微服务之turbine 微服务和VUE入门教程(0): 着手搭建项目 微服务和VUE入门教程(1): 搭建前端登录界面 微服务和VUE入门教程(2): 注册中心 微服 ...
- 零基础Bootstrap入门教程(0)--教程背景与目录
点此查看 所有教程.项目.源码导航 本文目录 1. 背景 2. 教程目录 3. 源码下载 1. 背景 在学习完成HTML/CSS/JS/jQuery零基础入门教程后,自然而然我们要进入Bootstra ...
- 零基础SSM入门教程(0)--教程背景与目录
点此查看 零基础JavaWeb全栈文章目录及源码下载 1. 背景 本教程的出发点是写一个比较条理,比较全面的SSM系列教程,首先造福自己.理顺自己的知识体系,然后也造福大众,因为网上现存的资源相对比较 ...
- Helm3入门教程全系列,26小时轻松掌握Helm
很多人都使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具.采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用:用户则可以 ...
- 20天学会UI设计(PS+AI)入门教程
PS.AI是UI设计师必不可少的两项技能,对于想要学习UI设计的人来说,首先就是要学会使用PS和AI.如何才能快速学会这两样呢?下面给大家分享20天学会UI设计(PS+AI)入门教程. 课程介绍 本套 ...
最新文章
- linux之文件的高级命令
- 动态管理配置文件扩展接口EnvironmentPostProcessor
- 机器学习13大规模数据集
- java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
- excel html 查询,index.html
- OPPO Reno 5G版高调宣布上市时间:已具备上市条件
- 搜索算法-三个简单的小问题
- MATLAB 读取文件及数据
- Node.app让Nodejs平台在iOS和OS X系统上奔跑
- 04_部署 etcd 集群
- 一张图表,人人都能建立自己的AARRR运营模型
- android支付宝免密支付功能,手机支付宝如何将免密支付功能关闭掉
- (sn0wbreeze保基带升级,redsnow,absinthe越狱)常用越狱工具下载:redsnow,absinthe,tinyumbrella,sn0wbreeze
- electron-vue 打包桌面应用程序并封装
- 剑斩楼兰的将军之路:多属性决策模型。
- 宁向东认为的沟通分类
- php中文数组按拼音排序问题
- Beautiful Soup:4 kinds of objects
- el-upload自定义文件列表
- 为什么公司宁可高薪招一个新员工,也不愿意给老程序员涨一点工资?