JsonCpp 库如何集成到Visual studio

article/2025/6/7 13:22:08

这是用于 在 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 页面下载:

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

或者直接克隆:

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)

http://www.hkcw.cn/article/XtmjeIkERL.shtml

相关文章

sourceinsight4.0不识别.cc解决办法

options—>preferences 选择 c language, 点击右边的 file types, 添加 ;*.cc即可 重新创建工程, 不仅有.cc, 还有.cc的目录结构

RNN结构扩展与改进:从简单循环网络到时间间隔网络的技术演进

本文系统介绍 RNN 结构的常见扩展与改进方案。涵盖 简单循环神经网络&#xff08;SRN&#xff09;、双向循环神经网络&#xff08;BRNN&#xff09;、深度循环神经网络&#xff08;Deep RNN&#xff09; 等多种变体&#xff0c;解析其核心架构、技术特点及应用场景&#xff0c;…

IBM DB2分布式数据库架构

一、什么是分布式数据库架构 分布式数据库架构是现代数据库系统的重要发展方向&#xff0c;特别适合处理大规模数据、高并发访问和高可用性需求的应用场景。下面我们从原理、架构模式、关键技术、实现方式和常见产品几个方面来系统讲 1、分布式数据库的基本概念与原理 1. 什…

第十三章 Java基础-特殊处理

文章目录 1.包和final2.权限修饰符和代码块3.抽象类1.包和final 2.权限修饰符和代码块 3.抽象类

Could not get unknown property ‘mUser‘ for Credentials [username: null]

最近遇到jekins打包报错&#xff1a; Could not get unknown property mUser for Credentials [username: null] of type org.gradle.internal.credentials.DefaultPasswordCredentials_Decorated。 项目使用的是gradle&#xff0c;通过pipeline打docker包&#xff1b;因为ma…

核显战3A,锐龙9000G系列CPU曝光

在刚过去不久的台北国际电脑展上&#xff0c;AMD 为大家带来了 RX 9060 XT、Radeon AI PRO R 9700 显卡以及线程撕裂者系列新品。 尽管狠活儿不少&#xff0c;但这场电脑展仍然让不少同学失望而归。 因为&#xff0c;原本预期亮相锐龙 9000G 系列桌面 APU 竟没有公布半点消息。…

[yolov11改进系列]基于yolov11引入空间通道系统注意力机制SCSA的python源码+训练源码

【SCSA介绍】 1、Spatial and Channel Synergistic Attention ​ 通道和空间注意力分别为各种下游视觉任务的特征依赖性和空间结构关系提取带来了显著的改进。虽然两者的组合更有利于发挥各自的优势&#xff0c;但通道和空间注意力之间的协同作用尚未得到充分探索&#xff0c…

穿越文件之海:Linux链接与库的奇幻旅程,软硬连接与动静态库

文章目录 引言1、软硬链接1.1、基本认知1.2、实现原理1.3、应用场景1.4、取消链接1.5、ACM时间 2、动静态库2.1、认识库2.2、库的作用 3、制作静态库3.2、静态库的使用 4、制作动态库4.1、动态库的打包4.3、动态库的链接原理 5、动态库知识补充 引言 在计算机的无形世界中&…

2024年认证杯SPSSPRO杯数学建模D题(第二阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现&#xff1a; 2023 年开年&#xff0c;ChatGPT 作为一款聊天型AI工具&#xff0c;成为了超越疫情的热门词条&#xff1b;而在AI的另一个分支——绘图领域&#xff0c;一款名为Midjourney&#xff08;MJ&#xff…

6.3 计算机网络面试题

网络OSI模型和TCP/IP模型分别介绍一下 OSI 应用层&#xff1a;http htps DNS 为应用程序提供统一的接口表示层&#xff1a;将数据转换为兼容另一个系统能识别的格式会话层&#xff1a; 建立管理终止表示层实体之间的通信会话传输层: tcp udp 负责端到端的数据传输网络层: ip …

LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 下

上部分链接&#xff1a;LeetCode 高频 SQL 50 题&#xff08;基础版&#xff09; 之 【高级查询和连接】 上 题目&#xff1a;1164. 指定日期的产品价格 题解&#xff1a; select product_id,10 price from Products group by product_id having min(change_date) > 201…

ssm学习笔记day04

RequestMapping 首先添加依赖 Maven的配置 测试 在controller创建HelloController&#xff0c;如果只加RequestMapping&#xff0c;默认跳转到新页面 如果要是加上ResponseBody就把数据封装在包(JSON)&#xff0c;标签RestController是前后分离的注解&#xff08;因为默认用…

Spine工具入门教程4之网格与权重

1、概念 网格的定义&#xff1a; 启用网格&#xff0c;可以在图片内设置多边形&#xff0c;操纵多边形的顶点可以让图片变形。 权重的定义&#xff1a; 图解网格和权重的操作方法&#xff1a; 2、调整网格/权重 &#xff08;1&#xff09;设置网格 目前调整小臂骨骼对图片不…

吉他入门个人学习笔记

目录 一.一二期 1. 十二平均律 2.调音 3.弦数-音名-唱名 三.第三期 1.43231323训练 2.c大调二十四品常用音阶图 四.第四期 1.小星星 2.爬格子训练 五.第五期 六.第六期——大三和弦 和弦总览 1.C和弦 2.D和弦 3.E和弦 4.G和弦 5.A和弦 第七期.小三和弦 五百…

队列的讲解:C++队列的使用

一.队列的介绍&#xff1a; 队列是C/C中最基础的数据结构之一&#xff0c;队列本质上是一种线性表。它遵循着先进先出(fifo)的特点&#xff0c;在队列中一般在队尾插入&#xff0c;队头出队。这就相当于排队一样&#xff0c;刚入队的人需要排在队尾(rear)&#xff0c;每次出队…

使用Process Explorer、System Informer(Process Hacker)和Windbg工具排查软件高CPU占用问题

目录 1、问题现象 2、使用Process Explorer和System Informer&#xff08;该工具原先叫Process Hacker&#xff09;查看占用CPU高的线程 3、使用System Informer工具时发现了一个关键细节 4、将Windbg附加到软件进程上&#xff0c;根据System Informer中显示的线程id到Wind…

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…

传统业务对接AI-AI编程框架-Rasa的业务应用实战(1)--项目背景即学习初衷

我的初衷&#xff1a;我想学习AI。具体的方向是这样的&#xff1a;原本传统的平台业务去对接智能体。比如发票业务&#xff0c;发票的开具、审核、计税、回款等。根据用户在业务系统前台界面输入若干提示词 或者 语音输入简短语音信息&#xff0c;可以通过智能体给出需要处理的…

【八股消消乐】索引失效与优化方法总结

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本专栏《八股消消乐》旨在记录个人所背的八股文&#xff0c;包括Java/Go开发、Vue开发、系统架构、大模型开发、具身智能、机器学习、深度学习、力扣算法等相关知识点&#xff…

Java面试八股--06-Linux篇

目录 一、Git 1、工作中git开发使用流程&#xff08;命令版本描述&#xff09; 2.Reset与Rebase&#xff0c;Pull与Fetch的区别 3、git merge和git rebase的区别 4、git如何解决代码冲突 5、项目开发时git分支情况 二、Linux 1、Linux常用的命令 2、如何查看测试项目的…