JsonCpp 库如何集成到Visual studio

这是用于 在 C++ 中解析和生成 JSON 数据 的工具包,适合在需要与前端、网络、配置等 JSON 格式交互的 C++ 项目中使用。

Json(基于JsonCpp)

格式全称:JavaScript Object Notation

格式特点:

  1. 与开发语言无关
  2. 轻量级的数据存储格式
  3. 易于解析和封装
  4. 数据对象内部一般采用key-value模式来存储
  5. 支持数组、字符串、整数、小数、对象、布尔、空
  6. 可以用于数据传输、数据保存、数据交换

格式详解:

{

"name":"张三",

"age":18,

"身高":1.81,

"生日":"2002-01-02",

"学校":"北大青鸟",

"专业":["厨师","挖掘机"],

"单身":true,

"地址":null,

"好友":{...}

}

开源项目:

通用版本:(推荐)

https://github.com/open-source-parsers/jsoncpp

Window专用版本:

https://github.com/Microsoft/vcpkg.git

vcpkg: https://github.com/Microsoft/vcpkg.githttps://gitee.com/yao_yu_qq/vcpkg

一、如何下载最简单方式:直接集成源代码(推荐给初学者)

步骤:

  1. 下载 JsonCpp 源码:

进入 GitHub 页面下载:

或者直接克隆:

复制代码
git clone https://github.com/open-source-parsers/jsoncpp.git

2.找到源代码文件夹:

  • 进入 jsoncpp/src/lib_json/,将以下文件复制到你的项目中:

  • json_reader.cpp

  • json_value.cpp

  • json_writer.cpp

  • json.h

  • json_forwards.h(新版本可能已经合并)

3.包含头文件 + 编译源码

在你的 C++ 项目中添加这些源文件,然后包含头文件:

复制代码
#include "json/json.h"

示例编译命令(假设使用 g++):

复制代码
g++ main.cpp json_reader.cpp json_writer.cpp json_value.cpp -o my_app

二、使用 vcpkg 自动安装(适合 Windows + VS 用户)

步骤:

1.安装 vcpkg(如果还没装):

复制代码
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat

2.安装 JsonCpp:

复制代码
.\vcpkg install jsoncpp

3.在你的项目中集成(以 Visual Studio 为例):

  • 在项目属性 → C/C++ → 常规 → 附加包含目录中添加:
    vcpkg\installed\x64-windows\include

  • 链接库目录也添加:
    vcpkg\installed\x64-windows\lib

4.在代码中使用:

复制代码
#include <json/json.h>

三、在 Visual Studio 项目中使用 JsonCpp

示例步骤:

1. 创建一个空的 Win32 控制台项目(或 CMake 项目也可以)
2. 添加以下测试代码:
复制代码
#include <iostream>
#include <json/json.h>

int main() {
    Json::Value person;
    person["name"] = "张三";
    person["age"] = 18;
    person["single"] = true;

    Json::StreamWriterBuilder writer;
    std::string json_output = Json::writeString(writer, person);

    std::cout << json_output << std::endl;
    return 0;
}
3. 直接编译运行(VS 会自动链接 JsonCpp)
相关推荐
计算机安禾4 小时前
【数据结构与算法】第36篇:排序大总结:稳定性、时间复杂度与适用场景
c语言·数据结构·c++·算法·链表·线性回归·visual studio
无限进步_4 小时前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
计算机安禾4 小时前
【数据结构与算法】第35篇:归并排序与基数排序
c语言·数据结构·vscode·算法·排序算法·哈希算法·visual studio
蜡台4 小时前
IDEA 一些 使用配置和插件
java·ide·intellij-idea
星马梦缘5 小时前
jupyter Kernel Disconnected崩溃的修复
ide·python·jupyter
蜡台6 小时前
JetBrains IDEA 安装 卸载相关总结
java·ide·intellij-idea·注册码
獨枭7 小时前
Visual Studio 打开 .vdproj 显示“不兼容”的问题分析与解决
ide·visual studio
克里斯蒂亚诺更新8 小时前
myeclipse和tomcat的使用
ide·tomcat·myeclipse
一定要AK8 小时前
SSM 整合实战—— IDEA 版
java·ide·intellij-idea
Freak嵌入式10 小时前
MicroPython LVGL基础知识和概念:交互与事件处理
ide·嵌入式·gui·lvgl·micropython·电子·upypi