当前位置: 首页 > wzjs >正文

化工集团网站建设 中企动力长沙网站搭建关键词排名

化工集团网站建设 中企动力,长沙网站搭建关键词排名,怎么在vps上做网站,有没有可以做翻译的网站第三部分:JsonCpp 处理 JSON(现代 C++ 方案) 📢 快速掌握 JSON!文章 + 视频双管齐下 🚀 如果你觉得阅读文章太慢,或者更喜欢 边看边学 的方式,不妨直接观看我录制的 JsonCpp 课程视频!🎬 视频里会用更直观的方式讲解 JsonCpp 的核心概念、实战技巧,并配有动手演…

第三部分:JsonCpp 处理 JSON(现代 C++ 方案)

📢 快速掌握 JSON!文章 + 视频双管齐下 🚀

如果你觉得阅读文章太慢,或者更喜欢 边看边学 的方式,不妨直接观看我录制的 JsonCpp 课程视频!🎬 视频里会用更直观的方式讲解 JsonCpp 的核心概念、实战技巧,并配有动手演示,让你更高效地掌握 JSON 的处理方法!

当然,如果你喜欢深度阅读,这篇文章会帮助你系统地理解 JsonCpp,从基础到进阶!无论你选择哪种方式,最终目标都是让你成为 JsonCpp 处理的高手!💪

🎥 点击这里观看视频 👉 视频链接

一:JsonCpp 库概述与环境配置

1.1 JsonCpp 简介(特点、适用场景)

📌 JSONCPP 是什么?

  • JSONCPP 是一个 轻量级、功能强大 的 C++ JSON 解析库。
  • 它提供了 读取、修改、序列化、反序列化 JSON 的功能。
  • 适用于 嵌入式系统、网络编程、配置管理、日志处理 等场景。

📌 JSONCPP 的特点

易用:提供直观的 Json::Value 结构,操作 JSON 类似于操作 std::map
功能全面:支持 解析、创建、修改、格式化输出
性能优越:支持 高效的流式解析,适合处理大规模 JSON 数据

1.2 下载和安装 JsonCpp(CMake / vcpkg)

安装 JSONCPP

💡 方法 1:在windows中使用 vcpkg 安装

# powershellvcpkg install jsoncpp

💡 方法 2:在linux/macOS中使用系统包管理器

# Ubuntu/Debian
sudo apt install libjsoncpp-dev
# CentOS
sudo yum install jsoncpp         
# macOS
brew install jsoncpp

💡 方法 3:使用源码编译

git clone https://github.com/open-source-parsers/jsoncpp.git
cd jsoncpp
mkdir build && cd build
cmake .. && make
sudo make install

CMake 集成

# 安装了jsoncpp库的情况
cmake_minimum_required(VERSION 3.10)
project(MyProject)# 查找 jsoncpp 库
find_package(jsoncpp REQUIRED)# 包含头文件目录
include_directories(${JSONCPP_INCLUDE_DIRS})# 链接 jsoncpp 库
target_link_libraries(MyExecutable ${JSONCPP_LIBRARIES})
1.3 在 C++ 项目中集成 JsonCpp

另一种方式,会在目录下生成一个dist文件夹,在文件夹下包括jsoncpp的头文件和源文件;直接拷贝源文件到项目中即可。

python3 amalgamate.py

二:使用 JsonCpp 解析 JSON

2.1 加载JSON字符串
  • 解析 JSON 字符串:

    JsonCpp 提供了一个 Json::CharReader 用于解析 JSON 字符串,返回一个 Json::Value 对象。该对象是一个可以操作的 JSON 数据结构。

  • 解析 JSON 字符串并输出

    以下代码展示了如何解析一个 JSON 字符串,并将其内容打印出来(包括格式化输出)。

    示例代码:
    #include <iostream>
    #include <json/json.h>
    #include <fstream>int main() {// 示例 JSON 字符串std::string jsonString = R"({"name": "John","age": 30,"city": "New York","isEmployed": true,"skills": ["C++", "Python", "Java"]})";// 创建 Json::CharReaderBuilder,用于解析 JSON 字符串Json::CharReaderBuilder readerBuilder;Json::Value root;std::string errs;// 解析 JSON 字符串std::istringstream iss(jsonString);if (Json::parseFromStream(readerBuilder, iss, &root, &errs)) {// 解析成功,输出 JSON 内容std::cout << "Parsed JSON: " << std::endl;// 创建 StreamWriterBuilder,用于输出格式化的 JSON 字符串Json::StreamWriterBuilder writerBuilder;writerBuilder["indentation"] = "    "; // 设置缩进为4个空格std::string jsonStr = Json::writeString(writerBuilder, root);// 输出格式化后的 JSON 字符串std::cout << jsonStr << std::endl;} else {// 解析失败,输出错误信息std::cout << "Failed to parse the JSON string." << std::endl;std::cout << "Error: " << errs << std::endl;}return 0;
    }
    
    解释:
    1. JSON 字符串jsonString 变量保存了一个 JSON 格式的字符串。
      • R"(...)" 是 C++11 引入的原始字符串字面量,用于避免转义字符。
      • JSON 字符串中包括了 nameagecityisEmployedskills 等字段。
    2. Json::CharReaderBuilder:用于配置 JSON 解析器。Json::parseFromStream 方法从输入流中解析 JSON 字符串,并将解析后的内容存储到 root 对象中。
    3. 解析 JSON 字符串Json::parseFromStream 方法解析输入流中的 JSON 字符串,返回 true 表示解析成功,false 表示解析失败。
    4. 输出 JSON 数据
      • 使用 Json::StreamWriterBuilder 构建输出流,以便输出格式化的 JSON 字符串。
      • 设置 indentation" "(四个空格),使输出具有缩进和易于阅读的格式。
    5. 输出结果
      • 如果解析成功,将输出格式化后的 JSON 字符串。
      • 如果解析失败,输出错误信息。
    示例输出:
    Parsed JSON:
    {"age": 30,"city": "New York","isEmployed": true,"name": "John","skills": ["C++","Python","Java"]
    }
    
    总结:
    • Json::CharReaderBuilder 用于配置 JSON 解析器,并从输入流解析 JSON 字符串。
    • Json::StreamWriterBuilder 用于控制输出 JSON 字符串的格式(如缩进、空格数等)。
    • Json::Value 存储解析后的 JSON 数据,允许进行读取、修改、输出等操作。
2.2 解析JSON数组

JsonCpp 支持解析 JSON 数组,数组元素可以是任意类型的数据(如字符串、数字、对象、嵌套数组等)。

示例:

#include <iostream>
#include <json/json.h>int main() {std::string jsonString = R"([{"name":"John", "age":30}, {"name":"Alice", "age":25}])";Json::CharReaderBuilder readerBuilder;Json::Value root;std::istringstream s(jsonString);std::string errs;if (Json::parseFromStream(readerBuilder, s, &root, &errs)) {for (const auto& item : root) {std::cout << "Name: " << item["name"].asString() << ", Age: " &l

文章转载自:

http://CyYgVYpL.xrrbj.cn
http://5w2XM9sj.xrrbj.cn
http://w2mkBJDv.xrrbj.cn
http://5GXIaJXC.xrrbj.cn
http://pfCJmgAv.xrrbj.cn
http://MGRF0yMn.xrrbj.cn
http://BOMraieY.xrrbj.cn
http://cVOFK581.xrrbj.cn
http://gNJsop5n.xrrbj.cn
http://cOuFYfqG.xrrbj.cn
http://RTx2CYlx.xrrbj.cn
http://2VkxDOrB.xrrbj.cn
http://gs6FFpPD.xrrbj.cn
http://17Ii1jOD.xrrbj.cn
http://2TvNxXVN.xrrbj.cn
http://36bSwKS7.xrrbj.cn
http://aJ5sm7se.xrrbj.cn
http://wMG90Otr.xrrbj.cn
http://ZypZ8Qg5.xrrbj.cn
http://YugHKHfM.xrrbj.cn
http://Cm4lcFuf.xrrbj.cn
http://RXfKevpS.xrrbj.cn
http://YFyFC64S.xrrbj.cn
http://Nng0SYGR.xrrbj.cn
http://cVedD4AU.xrrbj.cn
http://yah6M1G9.xrrbj.cn
http://FfhAHLeS.xrrbj.cn
http://qlJrc9uk.xrrbj.cn
http://CKXyI5jn.xrrbj.cn
http://i1tCvdhG.xrrbj.cn
http://www.dtcms.com/wzjs/745509.html

相关文章:

  • 果洛州公司网站建设网站备案 座机
  • 金华网上商城网站建设校园网站建设初探
  • 佛山市南海区城乡建设局网站企业手机网站建设教程
  • 上线了做的网站怎么办瑞昌市建设局网站
  • 厦门电商网站建设搭建一个论坛
  • 招投标网站如何做后台管理员网站
  • 做网站最主要是那个一类商标wordpress主题放哪里
  • 汉字域名的网站运营一款app的费用
  • 镇江网站制作价格如何计算应用公园app免费制作
  • 简繁英3合1企业网站生成管理系统V1.6织梦网站系统删除
  • 工具类网站做排名网站链接网址怎么做
  • 中国建设银行网站评价python在线编程器
  • 移动电子商务网站建设软件工程的发展前景
  • 推广网站排名wordpress无法建立到wordpress.org的安全连接
  • 做视频网站用什么服务器配置福州执业建设中心网站
  • 网站颜色搭配网站做门户网站经验
  • 云南做网站哪家便宜阿里巴巴网站维护要怎么做
  • 网站开发的软 硬件环境标准咨询聊城做网站
  • ih5做的网站怎么上传深圳网站建设公司怎么做
  • 成都网站创建佛山网站建设企业推荐
  • 网页和网站的概念做网站每个月可以赚多少钱
  • 潍坊优化网站排名网站开发学什么语音
  • 上海行业门户网站建设技术广州学校网站建设
  • 网站建设 建议odoo 网站开发
  • 网站建设 福田廊坊关键词排名
  • 凡科网站官网python 做网站 用哪个框架好
  • 汕尾英文网站建设可以做视频网站的源码
  • php如何给网站做支付接口摄影网站怎么做数据库
  • 有没有专门交人做美食的视频网站手机在线设计
  • 毕节网站建设合肥it培训机构