| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #include "../pch/pch.h"
- #include "CLewaimaiJson.h"
- CLewaimaiJson::CLewaimaiJson()
- {
- }
- CLewaimaiJson::~CLewaimaiJson()
- {
- }
- std::string CLewaimaiJson::JsonToString(const rapidjson::Value& valObj)
- {
- rapidjson::StringBuffer sbBuf;
- rapidjson::Writer<rapidjson::StringBuffer> jWriter(sbBuf);
- valObj.Accept(jWriter);
- return std::string(sbBuf.GetString());
- }
- rapidjson::Document CLewaimaiJson::StringToJson(std::string jsonString, rapidjson::Document::AllocatorType &allocator)
- {
- rapidjson::Document document(&allocator);
- document.Parse(jsonString.c_str());
- if (document.HasParseError())
- {
- return false;
- }
- return document;
- }
- //把一个数组转化成json变量,数组的每个元素是一个map,map的key是json的名字,map的value是json的value
- rapidjson::Document CLewaimaiJson::ParamArrayToJson(std::vector<std::map<string, string>> paramArray, rapidjson::Document::AllocatorType &allocator)
- {
- rapidjson::Document doc(&allocator);
- doc.SetArray();
- for (std::vector<std::map<string, string>>::iterator it = paramArray.begin(); it != paramArray.end(); it++)
- {
- rapidjson::Value array_object(rapidjson::kObjectType);
- for (std::map<string, string>::iterator m_it = it->begin(); m_it != it->end(); m_it++)
- {
- Value key;
- Value value;
- key.SetString(m_it->first.c_str(), m_it->first.length(), allocator);
- value.SetString(m_it->second.c_str(), m_it->second.length(), allocator);
- array_object.AddMember(key, value, allocator);
- }
- doc.PushBack(array_object, allocator);
- }
- return doc;
- }
- //把一个数组转化成json字符串,数组的每个元素是一个map,map的key是json的名字,map的value是json的value
- std::string CLewaimaiJson::ParamArrayToJsonstring(std::vector<std::map<string, string>> paramArray)
- {
- rapidjson::Document doc;
- rapidjson::Document::AllocatorType &allocator = doc.GetAllocator(); //获取分配器
- Value& data = CLewaimaiJson::ParamArrayToJson(paramArray, allocator);
- rapidjson::StringBuffer buffer;
- rapidjson::Writer<StringBuffer> writer(buffer);
- data.Accept(writer);
- std::string result = buffer.GetString();
- return result;
- }
- //把一个map转化成json字符串,map的key是json的名字,map的value是json的value
- std::string CLewaimaiJson::ParamMapToJsonstring(std::map<string, string> param)
- {
- rapidjson::Document doc;
- rapidjson::Document::AllocatorType &allocator = doc.GetAllocator(); //获取分配器
- doc.SetObject();
- for (std::map<string, string>::iterator m_it = param.begin(); m_it != param.end(); m_it++)
- {
- Value key;
- Value value;
- key.SetString(m_it->first.c_str(), m_it->first.length(), allocator);
- value.SetString(m_it->second.c_str(), m_it->second.length(), allocator);
- doc.AddMember(key, value, allocator);
- }
- rapidjson::StringBuffer buffer;
- rapidjson::Writer<StringBuffer> writer(buffer);
- doc.Accept(writer);
- std::string result = buffer.GetString();
- return result;
- }
|