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下使用C++ Json库的更多相关文章
- linux下编译安装boost库
linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...
- LINUX学习笔记——LINUX下EXP命令全库备份数据库文件
LINUX下EXP命令全库备份数据库文件 1)建立备份目录,目录操作权限授权给Oracle用户 mkdir /backup --创建backup文件夹 cd / --进入cd语句 ls -l ...
- Linux下编译使用boost库:
Boost是什么不多说, 下面说说怎样在Linux下编译使用Boost的所有模块. 1. 先去Boost官网下载最新的Boost版本, 我下载的是boost_1_56_0版本, 解压. 2. 进入解压 ...
- linux 下 奇怪的 动态库 依赖问题
转:http://fanwei51880.blog.163.com/blog/static/3240674020111145285375/ 总结如下:1)当你在编译生成静态库的时候, 只需要相应的依赖 ...
- linux 下C语言编程库文件处理与Makefile编写
做开发快3年了,在linux下编译安装软件算是家常便饭了.就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题.看来还是像vs.codeblocks这样的ide把人弄蠢了.便下定决心一 ...
- linux下编译自己的库文件实践
有了我传的那个资料,这个就没什么用了,那个太经典了,这个就是记录我自己的实践.:-) linux下文件的类型是不依赖于其后缀名的,但一般来讲:.o,是目标文件,相当于windows中的.obj文件.s ...
- 嵌入式Linux下MP4视频录制库MP4V2移植和简单介绍
**************************************************************************************************** ...
- Linux 下 GCC 编译共享库控制导出函数的方法
通过一些实际项目的开发,发现这样一个现象,在 Windows 下可以通过指定 __declspec(dllexport) 定义来控制 DLL(动态链接库)中哪些函数可以导出,暴露给其他程序链接使用,哪 ...
- ffmpeg学习笔记-Linux下编译Android动态库
Android平台要使用ffmpeg就需要编译生成动态库,这里采用Ubuntu编译Android动态库 文件准备 要编译生成Android需要以下文件 NDK ffmpeg源代码 NDK下载 NDK可 ...
随机推荐
- www.verycd.com
#encoding=utf-8 import urllib import urllib2 postdate = urllib.urlencode({'continueURL':'http://www. ...
- BNU - 49102
进化之地(Evoland) Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO for ...
- LeetCode解题报告—— Rotate List & Set Matrix Zeroes & Sort Colors
1. Rotate List Given a list, rotate the list to the right by k places, where k is non-negative. Exam ...
- hdu 1114(完全背包)
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- .net core 2.0学习记录(四):Middleware使用以及模拟构建Middleware(RequestDelegate)管道
.net Core中没有继续沿用以前asp.net中的管道事件,而是开发了一个新的管道(Middleware): public class MiddlewareDemo { private reado ...
- ionic3包还原使用yarn命令执行步骤(解决ionic3懒加载报找不到 module的错误)
使用cnpm 还原ionic3.6的依赖包的时候 可以正常还原,但是使用懒加载就会报找不到 module 的错误.最简单的解决办法是删除node_modules 挂个vpn 重新执行npm insta ...
- 配合bootstrap实现的table 嵌套table
不要忘了引入bootstrap.css库 html部分 <div class="container"> <div class="row"> ...
- Java数据库连接池-proxool
连接池技术的思想: 连接复用(高效.安全),避免数据库频繁建立.关闭的开销 --------------------极客学院(参考lulei) 1.配置文件 <proxool> <! ...
- 【已解决】php本地环境超级慢
打开 C:\Windows\System32\drivers\etc去掉 #127.0.0.1 localhost 前面的#保留 #::1 localhost 前面的#
- HRBUST 1217 统计单词个数
$dp$. 设$dp[i][j]$为到$i$位置,切成了$j$段的最大收益,然后枚举一下$f$,$dp[i][j]=max(dp[f][j-1]+v[f+1][i])$.一段区间的价值可以用区间$dp ...