linux下使用C++ Json库
安装Json库
1、下载JsonCpp
http://sourceforge.net/projects/jsoncpp/files/
2、下载scons
http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download
3、解压scons-2.1.0.tar.gz
tar -zvxf scons-2.1.0.tar.gz
我的解压到了/opt/JSON/scons-2.1.0目录下了
4、进入到解压目录scons-2.1.0下面,执行命令:
sudo python setup.py install
5、解压jsconcpp
tar -zvxf jsoncpp-src-0.5.0.tar.gz
我的解压到了/opt/JSON/jsoncpp-src-0.5.0下
6、进入到jsoncpp解压目录下,执行命令:
sudo scons platform=linux-gcc
7、将/jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到/usr/include/
8、将jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a 拷贝到/usr/local/lib/下,并为了方便使用,将其重命名为libjson.a
9、测试代码
//json.cpp
#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++ json.cpp -ljson
输出:
“以上是综合网上多篇文章整理的,在此记录,防止遗忘”
基本使用示例
int mark = 1;
stringpwd("123456");
//json的字符串格式
string test="{\"id\":1,\"name\":\"kurama\"}";
//reader用于将字符串格式转化为json
Json::Reader reader;
//定义json变量
Json::Value value;
if(reader.parse(test,value))//字符串转json
{
if(!value["id"].isNull())
{
cout<<value["id"].asInt()<<endl;
//asString()用于转化为string,直接输出是带双引号的
cout<<value["name"].asString()<<endl;
}
}
Json::Value json;
//初始化json
json["mark"] = Json::Value(mark);
json["pass"] = Json::Value(pwd);
cout<<json["mark"].asInt()<<json["pass"].asString()<<endl;
string s;
//json转字符串
s = json.toStyledString();
cout<<s<<endl;
Json::Value js;
reader.parse(s,js);
cout<<js["pass"].asString()<<endl;
//转化为不带格式的字符串
Json::FastWriter writer;
std::string out = writer.write(js);
CentOS 6.3下PHP编译安装JSON模块报错解决:http://www.linuxdiyf.com/linux/10140.html
几款好的C/C++编译器(编译器而非IDE):http://www.linuxdiyf.com/linux/14086.html
Linux下搭建C/C++开发环境(GTK):http://www.linuxdiyf.com/linux/11185.html
Linux中安装Eclipse进行C/C++开发:http://www.linuxdiyf.com/linux/10129.html
相关文章
- Linux tee命令
- 每天一个linux命令(9):touch 命令
- [linux]Linux下的log
- 重新点亮linux 命令树————用户和用户组的配置文件[八]
- linux C++ 获取服务器外网IP地址(使用系统调用system)
- linux软件安装
- OAK-D-CM4设备刷写镜像教程(Windows & Linux)
- 硬核 | 学习 Linux/C/C++ 必备!
- Linux系统编程——IO编程
- windows上通过vnc连接虚拟机中linux系统
- L74.linux命令每日一练 -- 第十章 Linux网络管理命令 -- nmap和tcpdump
- L56.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- swapoff和sync
- L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who
- 【Linux之shell脚本实战】统计 Linux 进程相关数量信息
- Linux脚本之定时清空文件内容
- Linux 中的 Sticky Bit、SUID 和 SGID 示例
- 嵌入式Linux开发,Ubuntu22下交叉编译报错:arch64-linux-gnu-gcc: error while loading shared libraries: libstdc++.so.
- 嵌入式Linux开发,Ubuntu22下交叉编译报错:make[1]: aarch64-linux-gnu-gcc: No such file or directory
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so:
- conda安装r Linux系统中 linux中安装r
- Linux搭建arm的qemu模拟器
- Windows和Linux下排查C++软件异常的常用调试器与内存检测工具详细介绍
- linux mysql命令
- Linux C/C++开发
- linux===给新手的 10 个有用 Linux 命令行技巧(转)
- Foxit PDF SDK for Linux (C++ Library) 8.4.1 Crack
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so: