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)相关推荐

  1. e4a和python如何交互_云水日记-E4A教程:JSON解析案例

    一.关于JSON JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子 ...

  2. 最全面 Nginx 入门教程 + 常用配置解析

    http://blog.csdn.net/shootyou/article/details/6093562 个人整理资料,转帖注明出处,谢谢~ Nginx介绍和安装 一个简单的配置文件 模块介绍 常用 ...

  3. java开发框架emp入门教程,实战解析

    咱先来聊聊Redis 像Redis的基础入门,掌握下图这几个列出来的知识点足以了. 进阶的话,就得下点功夫了,事务.主从复制.哨兵.集群等等之类的搞不明白你就上不去呀. 再看美团亿级流量Redis实战 ...

  4. python快速编程入门教程-python从入门到精通之30天快速学python视频教程

    python从入门到精通之30天快速学python视频教程 课程目录: python入门教程-1-Python编程语言历史及特性.mkv python入门教程-2-Python编程语言初接触.mkv ...

  5. 微服务和VUE入门教程(26): 微服务之turbine

    微服务和VUE入门教程(26): 微服务之turbine 微服务和VUE入门教程(0): 着手搭建项目 微服务和VUE入门教程(1): 搭建前端登录界面 微服务和VUE入门教程(2): 注册中心 微服 ...

  6. 零基础Bootstrap入门教程(0)--教程背景与目录

    点此查看 所有教程.项目.源码导航 本文目录 1. 背景 2. 教程目录 3. 源码下载 1. 背景 在学习完成HTML/CSS/JS/jQuery零基础入门教程后,自然而然我们要进入Bootstra ...

  7. 零基础SSM入门教程(0)--教程背景与目录

    点此查看 零基础JavaWeb全栈文章目录及源码下载 1. 背景 本教程的出发点是写一个比较条理,比较全面的SSM系列教程,首先造福自己.理顺自己的知识体系,然后也造福大众,因为网上现存的资源相对比较 ...

  8. Helm3入门教程全系列,26小时轻松掌握Helm

    很多人都使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具.采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用:用户则可以 ...

  9. 20天学会UI设计(PS+AI)入门教程

    PS.AI是UI设计师必不可少的两项技能,对于想要学习UI设计的人来说,首先就是要学会使用PS和AI.如何才能快速学会这两样呢?下面给大家分享20天学会UI设计(PS+AI)入门教程. 课程介绍 本套 ...

最新文章

  1. linux之文件的高级命令
  2. 动态管理配置文件扩展接口EnvironmentPostProcessor
  3. 机器学习13大规模数据集
  4. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
  5. excel html 查询,index.html
  6. OPPO Reno 5G版高调宣布上市时间:已具备上市条件
  7. 搜索算法-三个简单的小问题
  8. MATLAB 读取文件及数据
  9. Node.app让Nodejs平台在iOS和OS X系统上奔跑
  10. 04_部署 etcd 集群
  11. 一张图表,人人都能建立自己的AARRR运营模型
  12. android支付宝免密支付功能,手机支付宝如何将免密支付功能关闭掉
  13. (sn0wbreeze保基带升级,redsnow,absinthe越狱)常用越狱工具下载:redsnow,absinthe,tinyumbrella,sn0wbreeze
  14. electron-vue 打包桌面应用程序并封装
  15. 剑斩楼兰的将军之路:多属性决策模型。
  16. 宁向东认为的沟通分类
  17. php中文数组按拼音排序问题
  18. Beautiful Soup:4 kinds of objects
  19. el-upload自定义文件列表
  20. 为什么公司宁可高薪招一个新员工,也不愿意给老程序员涨一点工资?

热门文章

  1. fortify linux安装包,SuSE Linux下安装Fortify 4.1
  2. watch 命令的使用
  3. android重学知识点
  4. Django 后台设计
  5. 手搓香和机压香的区别,我在新会小冈找到了
  6. SpringBoot:关于MultipartFile和File不得不说的那些事
  7. Ubuntu更换apt源之arm版
  8. 软件项目管理 7.4.4.进度计划编排-资源优化法
  9. 利用脚本监控打印机的墨粉适用状况
  10. Graph Neural Networks in Recommender Systems: A Survey