Jsoncpp新手入门:集成与源码编译

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

网上查到的教程对新手不太友好,特此记录Jsoncpp的使用。

本篇内容基于Win10系统 VS 2019 Community ,Centos7系统gcc 4.8.5。

Linux系统依赖Cmake编译,需要先安装Cmake环境,参考:

Linux 编译安装 Cmake_三采的博客-CSDN博客


目录

JsonCpp介绍

什么是JsonCpp?

什么是C++11?

JsonCpp集成方式

一、JsonCpp源代码——超级简单,推荐!!!

二、Windows VS 编译静态库

V1.9.2版本编译报错,未能成功编译

V1.9.3版本编译成功

三、Linux Cmake编译静态库

Windows VS JsonCpp静态库引用

Linux Cmake JsonCpp静态库引用


JsonCpp介绍

什么是JsonCpp?

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

Releases · open-source-parsers/jsoncpp · GitHub

原文:

JsonCpp is a C++ library that allows manipulating JSON values, including serialization and deserialization to and from strings. It can also preserve existing comment in unserialization/serialization steps, making it a convenient format to store user input files.

谷歌翻译:

JsonCpp是一个C++库,它允许处理JSON值,包括在字符串之间进行序列化和反序列化。 它还可以在反序列化/序列化步骤中保留现有注释,从而使其成为存储用户输入文件的便捷格式。

原文:

  • 1.y.z is built with C++11.
  • 0.y.z can be used with older compilers.
  • 00.11.z can be used both in old and new compilers.
  • Major versions maintain binary-compatibility.

谷歌翻译:

1.y.z是使用C++ 11构建的。
0.y.z可以与较早的编译器一起使用。(适用于gcc 4.+版本)
00.11.z可以在新旧编译器中使用。(适用于gcc 5.+版本)
主要版本保持二进制兼容性。

什么是C++11?

C++11是C++编程语言的第三个官方标准,正式名叫ISO/IEC 14882:2011 - Information technology Programming languages C++ 。在正式标准发布前,被称为C++0x。

支持C++11的主流编译器

  • GCC 4.8 及以上版本
  • Clang 3.1 及以上版本
  • VS 2013 及以上版本(有部分C++11特性不支持)

JsonCpp集成方式

一、JsonCpp源代码——超级简单,推荐!!!

Jsoncpp编译使用方法总结 Jsoncpp编译集成方法总结 1. 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,非常易于人阅读和编写,同时也易于机器解析和生成, 它是基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Per 阅读详情

相关推荐

【项目组件】第三方库——Jsoncpp

Json是⼀种数据交换格式,它采用完全独立于编程语⾔的⽂本格式来存储和表示数据。例如: 我们想表示⼀个同学的学⽣信息。

m0_73904148的博客 1548

交叉编译 JsonCpp

JSON 是一种轻量级数据交换格式。它可以表示数据、字符串、有序的值序列以及名称/值对的集合。JsonCpp 是一个 C++ 库,允许操作 JSON 值,包括字符串之间的序列化和反序列化。它还可以在反序列化/序列化步骤中保留现有注释,使其成为存储用户输入文件的方便格式。........................

bluebird_shao的专栏 1702

C++ JSON库jsoncpp 0.10.7源码编译Visual Studio项目集成实战

JSON作为一种轻量级的数据交换格式,在现代软件开发中扮演着至关重要的角色,尤其在网络通信、配置文件解析和数据持久化等场景。其核心原理是基于文本的键值对和数组结构,易于人类阅读和机器解析。在C++项目中,高效、安全地处理JSON数据能显著提升开发效率和程序健壮性。jsoncpp作为C++社区中久经考验的第三方库,提供了稳定可靠的JSON解析序列化能力。通过从源码编译生成静态库或动态库,开发者可以确保库文件项目环境的完全兼容,避免因运行时库不匹配导致的链接错误。本文以jsoncpp 0.10.7版本为例,

weixin_34081595的博客 584

【Json】——jsoncpp的序列化以及反序列化

JSON,全称是 JavaScript Object Notation,即 JavaScript对象标记法。 JSON是一种数据交换格式,采用 完全独立于编程语言 的文本格式来存储信息和表示数据 JSON的作用是 将多种数据对象组织成一种 特定格式的字符串. JSON无论对于人,还是对于机器来说,都是十分便于阅读和书写的

sjp11的博客 5494

json库——jsoncpp

Notation)是一种轻量级的数据交换格式,常用于在不同系统之间传输和存储数据。它具有以下特点:可读性:JSON使用文本格式表示数据,易于阅读和理解。它采用了类似于JavaScript对象的键值对的形式来组织数据。简洁性:JSON的语法非常简洁,相比于其他数据格式(如XML),它的数据表示更为紧凑,节省了传输和存储空间。支持多种数据类型:JSON支持多种基本数据类型,包括字符串、数字、布尔值、数组、对象和null。这使得JSON非常灵活,可以表示各种类型的数据结构。

qq_43441284的博客 1万+

c++jsoncpp的常用方法解析

在处理json数据时,经常会需要确定json object的值类型,从而进行对应的处理,下面说一下json值怎么创建判断!在处理json数据时,数据的序列化及反序列化是经常要使用的方法,下面详细介绍些jsoncpp关于序列化及反序列话的方法。

qq_39466755的博客 3657

编译JSONCPP源码

上面的步骤光是考虑程序运行的话,其实引入静态库和头文件也可以办到,但是对于一个严格的项目而言能够明确知道源代码也是相当重要的。所以进行上面步骤的目的就是为了能够在自己的项目当中调试第三方框架的源代码。

qq_45651072的博客 1163

JsonCpp使用方法及示例

文章目录下载使用静态库/动态库使用源文件demo头文件创建保存读取修改main 下载 Github地址 本人编译好的库以及生产的源码 使用静态库/动态库 linux: mkdir build cd build cmake -DCMAKE_BUILD_TYPE=release -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=. -G "Unix Makefiles" .. make windows: 下载cmake

凉_白开的博客 4万+

jsoncpp编译和交叉编译

1、下载源码包 2、解压 解压:tar -zxvf jsoncpp-src-0.5.0.tar.gz 进入解压后路径:cd jsoncpp-src-0.5.0.tar.gz 3、编译 3.1 Ubuntu编译(gcc) 先安装 scons 在直接编译下(相比Makefile要操作简单 )执行下面命令 sudo apt-get install scons scons platform=linux-g...

怡宝的踩坑之路 2350

C++项目源码集成jsoncppCMake构建跨平台实践指南

C++开发中,JSON数据解析是处理配置文件、网络通信和数据序列化的基础需求。其核心原理在于将文本格式的JSON数据转换为内存中的结构化对象,反之亦然,从而实现数据的高效交换持久化。这一技术为现代软件工程提供了灵活的数据交换格式,在Web API、微服务架构和配置管理等领域广泛应用。通过源码集成的方式,开发者能够精确控制依赖版本、统一编译选项并获取完整的调试信息,这对于确保跨平台部署的一致性和进行深度问题排查至关重要。本文以jsoncpp为例,结合CMake构建工具,详细阐述了如何将第三方库源码深度集成

weixin_34087307的博客 367

JSONCPP库移植到Qt环境中:完整指南实践

JSONCPP是一个轻量级的C++库,用于解析和生成JSON(JavaScript Object Notation)数据格式。它被设计为易于集成和使用,没有依赖任何其他库,这使得JSONCPP特别适合嵌入式系统和资源受限的环境。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但它是一个独立于语言的数据格式。

weixin_32251525的博客 778

3分钟搞懂JsonCpp编译选项:从源码到定制库的实用指南

你是否曾因JSON库体积过大而苦恼?是否需要在嵌入式设备中精简JSON功能?或者在项目中需要严格的JSON语法校验?本文将带你通过10个核心编译选项,3分钟掌握JsonCpp的定制化编译技巧,让JSON处理库完美适配你的项目需求。 ## 编译选项概览 JsonCpp提供了丰富的编译配置选项,通过[CMakeLists.txt](https://link.gitcode.com/i/8d5b69...

gitblog_00338的博客 994

Visual Studio 2022配置jsoncpp避坑指南:从源码编译到跨平台项目集成

本文详细介绍了在Visual Studio 2022中配置jsoncpp的全流程,包括源码编译、项目集成及跨平台开发技巧。针对C++开发者常见的JSON解析需求,提供了从环境准备到性能优化的完整解决方案,帮助开发者高效处理JSON数据读写解析。

weixin_29008805的博客 297

JsonCpp编译使用

注意上面的序列化:C++对象–>JSON字符串反序列化:JSON字符串–>C++对象这个类是一个包装器,可以封装JsonCpp支持的所有类型前六行就是那些常用的数据类型第七行,是一个数组类型,对应json字符串中的[],该数组类型所存放的元素可以不同类型第八行,是一个对象类,对应json字符串中的{},他可以存放上面所有类型的key:value,其中,key必须是标准型字符串类型:string或者C语言字符串char str[],value可以是上面的。

长安1108的博客 410

VS2015编译jsoncpp

jsoncpp下载地址:https://github.com/open-source-parsers/jsoncpp/releases 下载jsoncpp源码,使用cmake-gui可以直接生成工程,然后直接编译就可以了 我使用VS2015编译好的jsoncpp x86和x64 静态库地址:https://gitee.com/chenjk10/jsoncpp-VS ...

坤仔的专栏 1313

C++ JSON处理实战:jsoncpp库下载、编译集成中文乱码解决方案

JSON作为一种轻量级的数据交换格式,在现代软件开发中扮演着关键角色,尤其在网络通信、配置管理和数据持久化等场景。其核心原理是基于文本的键值对和数组结构,易于人类阅读和机器解析。在C++生态中,由于标准库缺乏原生支持,开发者需要借助第三方库来实现JSON的高效处理,这直接关系到项目的可维护性和跨平台兼容性。jsoncpp作为一款经典且稳定的C++ JSON库,以其平衡的接口设计、良好的兼容性和工业级的可靠性,成为许多大型项目的首选。它通过CMake构建系统支持灵活的编译选项,并能无缝集成到各种项目环境中。针

weixin_30235225的博客 426

C++】Ubuntu安装jsoncpp

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于的一个子集。JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 3939

CentOS7 编译使用 jsoncpp

安装环境:CentOS7 1708 x64 官网下载jsoncpp:https://sourceforge.net/projects/jsoncpp/ 目前是jsoncpp-src-0.5.0.tar.gz版本 安装scons: yum install scons 解压jsoncpp-src-0.5.0.tar.gz, tar -zxvf jsoncpp-src-0.5.0.ta...

May的专栏 2835

VS2013 C++项目集成JsonCpp:从编译配置到实战应用全解析

JSON作为一种轻量级数据交换格式,已成为现代软件开发中配置文件和网络数据传输的事实标准。其基于文本、易于阅读和编写的特性,使其在跨平台数据序列化场景中广泛应用。在C++项目中处理JSON数据,通常需要借助第三方库来实现解析生成。JsonCpp作为一款成熟稳定的纯C++库,以其良好的兼容性和直观的API设计,成为许多历史项目或特定环境下的首选方案。在Visual Studio 2013这类较旧的开发环境中,集成第三方库常面临编译配置运行时库匹配等工程实践挑战。本文以JsonCpp为例,详细阐述了在VS2

weixin_30879833的博客 416
上一篇: Android Studio虚拟机启动后没有开机问题解决
下一篇: ADB error: device unauthorized 问题解决
三采
博客等级 码龄10年 717粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值