【C++开发过程中对json的使用】

概要

本文分享了C++对Json类型的定义及使用,将string类型输入数据按Json格式保存以及对Json格式数据进行解析一系列操作。

技术细节

一、C++Json库的下载与cmake.txt编写
1、Json的github仓库地址:链接地址,下载准备json库。
(1)、点击链接地址到github仓库页面:

(2)在自己的工程目录下新建名为json的文件夹

我的工程目录为src

新建json文件夹

在这里插入图片描述

(3)、github仓库页面将"include/json"目录下的所有头文件和"json/lib_json"目录下的除了CMakeLists.txt以外的所有文件下载到自己的工程目录下,可以将仓库整个工程压缩包下载到本地在移到自己工程目录下即可
在这里插入图片描述

下载好后自己工程中的文件如图所示:

在这里插入图片描述

在工程目录json文件夹新建CMakeLists.txt文件并加入以下内容:

# CMake 最低版本号要求
cmake_minimum_required (VERSION 3.10)

#设置编译器版本C++11
set(CMAKE_CXX_STANDARD 11)

# 项目信息
project (json)

# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)

# 生成链接库json
add_library (json ${DIR_LIB_SRCS})

二、开发过程中Json的使用(string与Json互转)
以下以src工程中的main.cpp来简单介绍Json的使用

(1)、在src目录下新建CMakeLists.txt添加如下内容来链接json库使用

# CMake 最低版本号要求
cmake_minimum_required (VERSION 3.10)

#设置编译器版本C++11
set(CMAKE_CXX_STANDARD 11)

# 项目信息
project (src)

# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)

# 添加 json子目录
add_subdirectory(json)

# 指定生成目标test
add_executable(test main.cpp)

# 为工程添加链接库
target_link_libraries(test json)

(2)在src下新建main.cpp并添加如下内容。

#include <stdio.h>
#include <iostream>
#include <string>
#include "json/json.h"

using namespace std;
using namespace Json;

int main()
{
    std::string sects = "灵溪宗"; 
    int32_t id = 20230722;
    std::string name = "白小纯";
    double hight = 173.5;
    double weight = 57.9;

    //将数据转换为Json格式
    Json::Value str;

    str["Sects"] = sects;
    str["Id"] = id;
    str["Name"] = name;
    str["Hight"] = hight;
    str["Weight"] = weight;

    //将整个Json转为string
    std::string strTemp = str.toStyledString();
    cout<<strTemp<<endl;

    //解析Json数据
    Json::Reader reader;
    Json::Value root;
    std::string SECTS;
    int32_t ID;
    std::string NAME;
    double HIGHE;
    double WEIGHT;

    if(reader.parse(strTemp,root))
    {
        SECTS = root["Sects"].asString();
        ID = root["Id"].asInt();
        NAME = root["Name"].asString();
        HIGHE = root["Hight"].asDouble();
        WEIGHT = root["Weight"].asDouble();
    }
    cout<<"SECTS:"<<SECTS<<endl
        <<"ID:"<<ID<<endl
        <<"NAME:"<<NAME<<endl
        <<"HIGHE:"<<HIGHE<<endl
        <<"WEIGHT:"<<WEIGHT<<endl;
    
    return 0;
}

然后再新建build目录执行命令:
cmake…
make
新建build目录是为了防止使用cmake命令编译时产生的文件污染工程目录。

在这里插入图片描述

(3)、然后build目录下就生成了名为test的可执行文件
输入命令执行:
./tets

在这里插入图片描述

小结

本文是博主在技术探索道路上留下的第一屡痕迹,希望能够帮到大家,有不足的地方欢迎广大志同道合的朋友指正,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值