json封装与解析
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <sstream>
#include <string>
using namespace std; //stringstream只是一个中转的作用,因为write_json还是read_json操作的是stringstream.
void packetage(char** json)//不能直接用char* json,因为传递的指针的值会变,需要传递指针的地址
{
boost::property_tree::ptree tree;
tree.put("a", );
tree.put("b", );
std::stringstream ss;
//将ptree的内容写到stringstream中,写的内容就是Json格式,这里用stringstream这个是固定模式
boost::property_tree::json_parser::write_json(ss, tree);
*json = new char[ss.str().size() + ];//需要为/0分配一个位置
//*json = const_cast<char*>(ss.str().c_str());//这种方式不行或者const_case也不行,可能是因为stringstream内部实现的原因
strcpy(*json, ss.str().c_str());//只能这种方式将其内部字符串拷贝出来
} void parse(char* json)
{
boost::property_tree::ptree tree;
std::stringstream ss(json);
boost::property_tree::json_parser::read_json<boost::property_tree::ptree>(ss, tree);//将ss中的json读取到ptree中
int a = tree.get<int>("a");
int b = tree.get<int>("b");
} int main()
{
//----------------先来个Json解析和封装-------------------
//1.封装json
/*就来个简单的
{
"a":1,
"b":2
}*/
char* json = NULL;
packetage(&json);
parse(json);
getchar();
return ;
}
json封装与解析的更多相关文章
- Android JSON、GSON、FastJson的封装与解析
声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...
- [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
上一讲为大家讲了什么是JSON,那么这一讲为大家带来了在WEB项目中JSON的用法,也就是JSON的封装与解析. 此图是数据库中的部分内容 一.JSON封装 所谓的JSON封装,指的是在Servlet ...
- JS中将JSON的字符串解析成JSON数据格式《转》
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- jsoncpp封装和解析字符串、数字、布尔值和数组
使用jsoncpp进行字符串.数字.布尔值和数组的封装与解析. 1)下载jsoncpp的代码库 百度网盘地址 :http://pan.baidu.com/s/1ntqQhIT 2)解压缩文件 json ...
- Json字符串解析原理、超大json对象的解析
概述 附上完整的代码:https://pan.baidu.com/s/1dEDmGz3(入口类是Json)JSON:JavaScript 对象表示法(JavaScript Object Notatio ...
- json数组的解析
一直以来,经常会遇到json数据从前端或者我经常从网站上爬取的数据中会有json数据的存在,这样如果想要获取json数据就需要对json数据进行解析 在开发过程中,经常需要和别的系统交换数据,数据交换 ...
- Json 网络传递解析异常
在项目中碰到一个bug,A项目请求B项目,获取到的Json无法解析,B项目封装的Json,在项目内部可以正常解析,问题并不是Json 解析的错误,而是实体Bean中有数组类型的字段;解决办法就是对封装 ...
- 关于json格式字符串解析并用mybatis存入数据库
园子里面找了很多关于json解析后存入数据库的方法,不是太乱,就是没有写完,我下面的主题代码多是受下面两位的启发,请按顺序查看 http://www.cnblogs.com/tian830937/p/ ...
- HttpPost 传输Json数据并解析
转自:https://blog.csdn.net/qq_35114086/article/details/52317311 这里写个测试用例模拟外部调用,通过httppost 传递一个json封装的表 ...
随机推荐
- Spring IoC容器的设计——BeanFactory应用场景2
1.BeanFactory接口设计了getBean方法,这个方法是使用IoC容器API的主要方法,通过这个方法,可以取得IoC容器中管理的Bean,Bean的取得是通过指定名字来索引的. 2.如果需要 ...
- 单机版简单弹幕墙demo (jqery+bootstrap)
最近在看fcc ,上面有一个弹幕墙设计的题目,要求从后端获取数据,显示出来.百度,谷歌都没找到相关好的例子作为借鉴,索性按照自己的思路写了一个简单的demo .在做demo的过程中遇到最大的问题就 ...
- 1.配置EditPuls-编译和运行java程序
1.工具>配置自定义工具 2.添加工具>程序 1).编译java程序 2).运行java程序
- 安装新版本的mysql数据库
默认情况,在CentOS 6.8 下通过yum安装的是5.1.73版本,现在需求是安装5.7版本. -------------------------------------------------- ...
- visifire3.6.8 去水印方法
visifire 很NB的一套开源图表 不多介绍 详询google 3.0以下版本可以直接继承Chart类 override 加水印的函数就可以, 3.0以上版本需要自己编译源代码 这个水印函数藏得有 ...
- 【WinForm】“System.Data.SqlClient.SqlConnection”的类型初始值设定项引发异常,无法识别的配置节 system.serviceModel
出现问题的原因: 在本机上没有出现问题,让一个同事测试的时候,在另外一台电脑上出现连接数据库失败,系统不能打开的问题 在网上搜了一下,有说是数据库连接字符串错误的,有说app.config文件配置不匹 ...
- windows下apache配置https
1.下载带有openSSL的apache安装包,我下载的为apache_2.2.11-win32-x86-openssl-0.9.8i.msi,安装后确认一下bin路径下的openssl.exe,ss ...
- mac OS X下安装Redis及Thinkphp3.1使用Redis
一.安装Redis 1.安装Homebrew 在终端输入ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/install/maste ...
- sql拆分查询
有这样一个需求: 临时表sql: create table #AA ( ID int, Name nvarchar(20) ) insert #AA select 1,'苏州/上海/温州' union ...
- openerp经典收藏 对象定义详解(转载)
对象定义详解 原文地址:http://shine-it.net/index.php/topic,2159.0.htmlhttp://blog.sina.com.cn/s/blog_57ded94e01 ...