json - std::string 到 rapidJson 对象转换
问题描述
我试图将一个 std::string 转换为以下格式的 rapidJson 对象
{
"data":{
"value": "AB1234"
}
}
我努力了
rapidjson::Document aJsonDocument;
aJsonDocument.SetObject();
rapidjson::Document::AllocatorType &aAllocator = aJsonDocument.GetAllocator();
rapidjson::Value aPsmJson(rapidjson::kStringType);
std::string aStr = "ABCDEF";
aPsmJson.SetString(aStr.c_str(), aAllocator);
aJsonDocument.AddMember("value", aPsmJson, aAllocator);
//jsonToString is a function to convert json document to string
std::string aInputJsonString = jsonToString(aJsonDocument);
std::cout << "Output: " << aInputJsonString ;
这给出了输出 {"value":"ABCDEF"}
解决方案
您忘记创建一个Value
for "data"
:
string s = "ABCDEF";
Document d(kObjectType);
Value data(kObjectType);
Value value;
value.SetString(s.c_str(), d.GetAllocator());
data.AddMember("value", value, d.GetAllocator());
d.AddMember("data", data, d.GetAllocator());
std::cout << jsonToString(d);
输出:
{
"data": {
"value": "ABCDEF"
}
}
推荐阅读
- javascript - 如何修复无法读取未定义的属性“纬度”
- laravel-dusk - 如何在 Laravel Dusk 浏览器测试、单元测试和功能测试之间共享代码
- python - 由于某种原因,我无法显示此文件
- performance - 优化 GPU 利用率处理离散图像的技术
- sql-server - 如何知道 SQL Server 何时升级?
- python - 将 django rest auth 与 django allauth 集成
- javascript - 使用 electron-buider 构建电子应用程序后 fs.writeFileSync 无法正常工作
- c# - 访问对象图中更深层次的父对象属性的模式或方法
- c# - 访问类中对象的属性
- java - 读取json文件数组Java Android studio