c++json构建与解析组件 RapidJSON 没用过永远不会知道有多好用

参考资料:

官方文档
推荐【腾讯RapidJSON】学习笔记

原理请参考以上资料

构建json

Document doc;
Document::AllocatorType &allocator=doc.GetAllocator(); //1.获取分配器
doc.SetObject();
//2,给doc对象赋值

    Value pnameValue;pnameValue.SetString(StringRef(pname.c_str()));//创建"key":"value"
    Value tagsValue;tagsValue.SetObject();//创建{}
    tagsValue.AddMember("pname",pnameValue,allocator);
    doc.AddMember("tags",tagsValue,allocator);
    Value tempV;
    tempV.SetString(StringRef(value.c_str()));//std::string value("test");
    doc.AddMember("value",tempV,allocator);
 //3,将doc对象的值写入字符串
    StringBuffer buffer;  
//PrettyWriter<StringBuffer> writer(buffer);  //PrettyWriter是格式化的json,如果是Writer则是换行空格压缩后的json  
        Writer<StringBuffer> writer(buffer);
        doc.Accept(writer); 
        return buffer.GetString();

效果:

    {"tags": {"pname"="xxx"},"value":"123, 123, 456, 123"}

解析Json

posted @   机智的程序员小熊  阅读(227)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示