C++ RapidJson解析

#include <rapidjson/rapidjson.h>
#include <rapidjson/writer.h>
#include <rapidjson/prettywriter.h>
#include <rapidjson/document.h>
#include <rapidjson/stringbuffer.h>
#include <rapidjson/memorystream.h>
#include <map>
#ifdef __unix
#endif
using namespace std;
using rapidjson::Document;
using rapidjson::StringBuffer;
using rapidjson::Reader;
using rapidjson::Writer;
using namespace rapidjson;

bool parseJSON_string_double(string jsonstr, map<string, double>& ffea) {
	Document root;
	if (root.Parse(jsonstr.c_str()).HasParseError()) {  // c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同. Parse()将字符串转变为json格式
		throw string("parse error!\n");
		return false;
	}
	if (!root.IsObject()) {    // 解析的数据是一个json对象,所有内容被解析成k:v形式作为成员变量,k为成员变量名,v为值
		throw string("should be a object!\n");
		return false;
	}
	string elem, elemll;
	ffea.clear();
	for (auto iter = root.MemberBegin(); iter != root.MemberEnd(); ++iter) {  // 遍历对象中所有的成员变量k:v,放到一个map集合中
		elem = (iter->name).GetString();  // k成员变量名
		ffea[elem] = (iter->value).GetDouble();   // 成员变量值
		cout << elem << ffea[elem] << endl;
	}
	return true;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值