Linux中JSON安装及使用
1.官网下载json-cpp,可以去sourceforge或github
https://sourceforge.net/projects/jsoncpp/files/
这里下载的是jsoncpp-src-0.5.0.tar.gz
2.下载scons
http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download
这里下载的是scons-2.1.0.tar.gz
3.解压刚刚下载的scons-2.1.0.tar.gz
终端输入命令:tar -zvxf scons-2.1.0.tar.gz
可以根据自己的需要选择解压地址
4.进入刚刚解压的scons-2.1.0文件夹中
终端输入命令:sudo python setup.py install
5.解压下载
https://codeload.github.com/open-source-parsers/jsoncpp/tar.gz/refs/tags/1.9.5
好的jsoncpp-src-1.9.5.tar.gz
tar -zvxf jsoncpp-src-1.9.5.tar.gz
同样的,可以根据自己的需要选择解压地址
6.进入刚刚解压的jsoncpp-src-1.9.5文件夹中
cd jsoncpp-1.9.5 mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_STATIC=ON make sudo make install
7.将 /jsoncpp-src-0.5.0/include 目录下的json文件夹拷贝到/usr/include
这里我的电脑不能直接复制粘贴文件夹,因此使用cp –r命令
终端输入如下:cp –r /mnt/share/jsoncpp-src-0.5.0/include/json /usr/include
8.将 /jsoncpp-src-0.5.0/libs/linux-gcc-5.3.1 目录下的libjson_linux-gcc-5.3.1_libmt.a 拷贝到 /usr/local/lib 下 (为便于使用,可将其libjson_linux-gcc-5.3.1_libmt.a重命名为简短一点的libjson.a)
同样,使用cp –r命令复制文件
终端输入如下:cp –r /mnt/share/jsoncpp-src-0.5.0/libs/linux-gcc-5.3.1/libjson_linux-gcc-5.3.1_libmt.a /usr/local/lib
重命名可以使用mv命令或rename命令
9.简单写一个测试代码 testjson.cpp
#include<iostream>
#include<json/json.h>
using namespace std;
int main()
{
string test=”{\”id\”:2021,\”name\”:\”Happy New Year\”}”;
Json::Reader reader;
Json::Value value;
if(reader.parse(test,value)){
if(!value[“id”].isNull()){
cout<<value[“id”].asInt()<<endl;
cout<<value[“name”].asString()<<endl;
}
}
return 0;
}
10.编译刚刚写的testjson.cpp
终端输入命令: g++ testjson.cpp –o testjson /usr/local/lib/libjson_linux-gcc-5.3.1_libmt.a
(我使用绝对路径是保险)
然后输入命令运行: ./testjson
11.输出结果如下
2021
Happy New Year
12. 一些关于json使用小结
我个人认为json文件是存储数据的一种格式文件,而我们可以通过“字符串”对其中提取所需信息。
主要为读取json文件,写入json文件
注意对于二维三维多维的json数据,用多重Json::Value读取即可
====================================================================================无法运行,结合另一篇
要安装jsoncpp,首先要下载好scons,再去安装jsoncpp
scons下载地址:wget http://prdownloads.sourceforge.NET/scons/scons-2.2.0.tar.gz
Jsoncpp 下载地址 http://sourceforge.net/projects/jsoncpp/files/latest/download?_test=goal
安装步骤如下:#tar -zxvf scons-2.1.0.tar.gz #cd scons-2.1.0
#python setup.py install
#tar -zxvf jsoncpp-src-0.5.0.tar.gz
#cd jsoncpp-src-0.5.0
#scons platform=linux-gcc
#mv libs/linux-gcc-4.4.7/libjson_linux-gcc-4.4.7_libmt.so /lib
#ln /lib/libjson_linux-gcc-4.4.7_libmt.so /lib/libjson.so
#mv include/json/ /usr/include/
#ldconfig
#./bin/linux-gcc-4.4.7/test_lib_json
【注意这里的版本号可能不同】先通过cd libs进入libs目录,再用“ls”命令查看自己的版本号,然后在上述步骤中修改成自己的版本号即可
======================================================第三篇https://www.csdn.net/tags/NtDaEgzsMzc2NjctYmxvZwO0O0OO0O0O.html
1. C++ json读写
1.1. rapidjson
git clone https://github.com/Tencent/rapidjson.git
待续
1.2. JsonCpp
1.2.1. 安装和编译
- 下载
http://sourceforge.net/projects/jsoncpp/files/
- 下载scons
http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download
- 解压scons-2.1.0.tar.gz
tar -zvxf scons-2.1.0.tar.gz
我的解压到了/opt/JSON/scons-2.1.0目录下了
- 进入到解压目录scons-2.1.0下面,执行命令:
sudo python setup.py install
- 解压jsconcpp
tar -zvxf jsoncpp-src-0.5.0.tar.gz
我的解压到了/opt/JSON/jsoncpp-src-0.5.0下
- 进入到jsoncpp解压目录下,执行命令:
sudo scons platform=linux-gcc
- 拷贝动态库
将jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a 拷贝到/usr/local/lib/下,并为了方便使用,将其重命名为libjson.a - 实例
#include<iostream>
#include<json/json.h>
using namespace std;
int main()
{
string test="{\"id\":1,\"name\":\"kurama\"}";
Json::Reader reader;
Json::Value value;
if(reader.parse(test,value))
{
if(!value["id"].isNull())
{
cout<<value["id"].asInt()<<endl;
cout<<value["name"].asString()<<endl;
}
}
return 0;
}
g++ test.cpp -I include -L libs/linux-gcc-9 -l json_linux-gcc-9_libmt