当前位置:   article > 正文

[C++ Json开源库] nlohmann安装与使用_c++ json库

c++ json库

nlohmann简介

nlohmann json GitHub - nlohmann/json: JSON for Modern C++ 是一个为现代C++(C++11)设计的JSON解析库,主要特点是:

1、易于集成,仅需一个头文件,无需安装依赖
2、易于使用,可以和STL无缝对接,使用体验近似python中的json

安装

Linux下:

git clone https://github.com/nlohmann/json.git
  • 1

拉取nlohmann库文件

使用

自己建立一个项目工程文件夹,将include下的molhmann文件夹复制到自己工程下的include文件夹下

测试工程文件结构:

在这里插入图片描述

测试的json文件

{
	"pi":3.1415,
	"happy":true
}
  • 1
  • 2
  • 3
  • 4

主文件

#include "nlohmann/json.hpp"
#include <fstream>
#include <iostream>
using json = nlohmann::json;
int main(int argc,char *argv[]) {
	json j;			// 创建 json 对象
    if(argc == 1){
	    std::ifstream jfile("./test/test.json");
        jfile >> j;		// 以文件流形式读取 json 文件
    }
    else if(argc == 2){
	    std::ifstream jfile(argv[1]);
        jfile >> j;		// 以文件流形式读取 json 文件
    }
    else{
        std::cout << "ERROR: Parameters are too many!" << std::endl;
        return -1;
    }

	float pi = j.at("pi");
	bool happy = j.at("happy");
    std::cout << "pi: " << pi << std::endl;
    std::cout << "happy: " << happy << std::endl;
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

编写build.sh脚本文件

#!/bin/bash
US="../"
cd $US
g++ ./Parse/parse.cpp -I ./include -o ./bin/parse
  • 1
  • 2
  • 3
  • 4

在build目录下给build.sh运行权限,以bash运行

chmod 755 build.sh
  • 1

然后

./build.sh
  • 1

会在工程文件夹的bin目录下生成可执行文件parse

编写run.sh脚本文件

#!/bin/bash
FILENAME="test.json"
./parse ../test/${FILENAME}
  • 1
  • 2
  • 3

在bin目录下给run.sh运行权限,以bash运行

chmod 755 build.sh
  • 1

然后

./run.sh
  • 1

结果输出:

pi: 3.1415
happy: 1
  • 1
  • 2

注意:如果想要更改测试文件,只需要将run.sh文件中FILENAME="test.json"引号中的文件名改成想要测试的文件名即可。

具体语法文档:https://github.com/nlohmann/json/blob/develop/README.md
中文简易版语法文档可以参考:https://www.cnblogs.com/linuxAndMcu/p/14503341.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/553860
推荐阅读
相关标签
  

闽ICP备14008679号