Centos下 jsoncpp使用详解

Windows环境下的jsoncpp使用举例之前有讲述,详见:
http://www.jb51.cc/article/p-oswexnkv-bcr.html
Linux之前一直没有用过,第一次用,特备忘如下:

1、Centos下 jsoncpp的安装步骤

第一步:下载jsoncpp

0.5.0版本地址:https://sourceforge.net/projects/jsoncpp/
个人感觉早期版本0.5.0更稳定些。
官网地址:https://github.com/open-source-parsers/jsoncpp

第二步:安装scons

编译jsoncpp需要使用scons。
下载scons地址:https://sourceforge.net/projects/scons/files/scons/2.1.0/
现在已经有新版本,但2.1.0测试相对好用。

第三步:编译scons

tar -zvxf scons-2.1.0.tar.gz
1)在/etc/profile 设置环境变量
export MYSCONS=解压的路径
export SCONS_LIB_DIR=$MYSCONS/engine
注意:这两个环境变量至关重要。

运行: source /etc/profile 使设置的新环境变量生效。

注: scons是一个Python写的自动化构建工具,从构建这个角度说,它跟GNU make是同一类的工具。
它是一种改进,并跨平台的gnu make替代工具,其集成功能类似于autoconf/automake 。
scons是一个更简便,更可靠,更高效的编译软件。

第四步:解压jsoncpp

tar -zvxf jsoncpp-src-0.5.0.tar.gz

第五步:切换到jsoncpp的解压目录,执行命令

python $MYSCONS/script/scons platform=linux-gcc
我的路径为:/home/yang/mysql_y/jsoncpp-src-0.5.0
执行:

第六步:生成静态和动态库文件

在jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7目录下,如下所示:
[root@yang linux-gcc-4.4.7]# pwd
/home/yang/mysql_ycy/jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7
[root@lyang linux-gcc-4.4.7]# ll
-rw-r–r– 1 root root 618712 9月 9 13:43 libjson_linux-gcc-4.4.7_libmt.a
-rwxr-xr-x 1 root root 359045 9月 9 13:43 libjson_linux-gcc-4.4.7_libmt.so

第七步:

可将 libjson_linux-gcc-4.4.7_libmt.a 和 libjson_linux-gcc-4.4.7_libmt.so 拷贝到/usr/lib下,
本文选择了静态库库文件,将解压后的文件夹下的INCLUDE中的头文件拷贝到/usr/include/json下。

2、Demo程序测试验证功能是否ok。

有如下最终结果输出的为ok!

[root@yang json_test0922]# cat json_test.cpp
#include <json/json.h>
#include <string>
#include <iostream>
using namespace std;

int main()
{
string test = "{\"encrptpripid\": \"f2cbfd07bb6b784f0fb5a52e17e1b3930324e1ef9065338f4aa1\",\ \"entname\": \"xx显华化工科技有限公司\",\   \"enttype\": \"1151\",\   \"enttypename\": \"法定代表人:\",\   \"estdate\": \"2003年06月19日\",\   \"lerep\": \"丰佩川\",\   \"pripid\": \"106350010220030687030\",\   \"regno\": \"911706007526952553\",\   \"regorgname\": \"XX经济技术开发区市场监督管理局\",\   \"uniscid\":\"91106007526952553\"}";

Json::Reader reader;
Json::Value value;
if(reader.parse(test,value))
{
  if(!value["encrptpripid"].isNull())
  {
  cout << value["entname"].asString() << endl;
  cout << value["regorgname"].asString()<< endl;
  }
}
return 0;
}
[root@yang json_test0922]# cat makefile
json_test:json_test.cpp
  g++ -o json_test json_test.cpp /usr/lib/libjson_linux-gcc-4.4.7_libmt.a
[root@yang json_test0922]# ./json_test
xx显华化工科技有限公司
XX经济技术开发区市场监督管理局

3、常见错误:

错误1:mysql_parse: src/lib_json/json_value.cpp:1025: Json::Value& Json::Value::resolveReference(const char*,bool): Assertion `type_ == nullValue || type_ == objectValue’ failed.
解决方案:json的内容的前面的”[” 以及后面的”]”去掉即可。

2016-9-21 pm20:59 思于家中床前
作者:铭毅天下
转载请标明出处,原文地址:http://www.jb51.cc/article/p-aiiazqec-bcx.html 如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


#使用军哥的lnmp配置虚拟主机,需要注意的是要配置hosts文件(这一点官方没有讲到)具体方法:1、修改hosts文件sudo vim /etc/hosts2、在hosts文件中新增一行(这里类似于windows上配置hosts文件)127.0.0.1 www.baidu.com3、保存并重启网络
一、配置编译环境 yum update &amp;&amp; yum upgrade yum groupinstall &quot;Development Tools&quot; yum install gcc gcc-c++ pcre* openssl* gd-devel* zlib-devel
一、下载repo文件 二、备份并替换系统的repo文件 三、执行yum源更新操作
LAMP -- Linux Apache MySQL PHP 在CentOS安装的顺序,我一般是Apache&#160;-&gt;&#160;MySQL&#160;-&gt;&#160;PHP 第一步、安装并配置Apache 1、使用yum安装 [plain]&#160;view plaincopy
一、下载nginx安装包,官网下载中心http://nginx.org/download [root@localhost software]# wget http://nginx.org/download/nginx-1.10.1.tar.gz 二、解压nginx安装包 [root@localhos
1.下载composer curl -sS https://getcomposer.org/installer | php ps:如果出现php无法运行的情况,请先把PHP加入环境变量,具体操作参考《centOS安装PHP》 2.移动或复制composer到环境下可执行 cp composer.ph
一、卸载旧版本的vim 二、安装终端字符处理库ncurses 三、下载Vim8 四、编译安装 五、添加到系统环境变量 六、安装成功
引言 我们在日常的开发过程中,很多时候需要连接服务器查看日志或者在服务器上调试代码。但是,使用 ssh 命令登录服务器每次都需要输出密码,就比较繁琐。因此我们可以使用 sshpass 通过参数指定密码进行登录。解决了这个问题之后,我发现登录服务器之后,还需要手动 cd 切换到项目目录或者日志目录。为
iptables basics Introduction iptables 是一个配置 Linux 防火墙的工具,是 netfilter 项目的一部分。 在 Linux Kernel 3.13 及以上版本中, nftables 将作为后继者取代 iptables 以成为更强大易用的防火墙工具 Bas
一、下载tengine 二、安装tenginx(nginx)的模块依赖库 三、解压并指定安装路径 四、编译安装 五、启动(tengine)nginx 六、访问(tengine)nginx
这篇文章介绍了如何快速部署一套Kubernetes集群,下面就快速开始吧! 准备工作 机器部署规划 主机 | IP | 部署组件 | | master主节点 | 192.168.199.206 | etcd、kube apiserver、kube controller manager、kube sc
一、pip下载 二、解压安装 三、安装完成
1、WebBench安装: yum install ctags(先安装依赖库) mkdir /usr/local/man (创建一个目录不然会报错) wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz tar zxv
1:查看环境: [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:关掉防火墙 [root@10-4-14-168 html]# chkconfig iptables off 3:配置CentOS
安装 1.检查当前是否有安装php rpm&#160;-qa|grep&#160;php 如果有安装PHP,那么请先删除这些安装包: yum&#160;remove&#160;php* 2.安装php源 Centos 5 安装php源: rpm&#160;-ivh&#160;http://mirro
一、安装 二、配置 三、修改配置文件 四、program 配置 五、启动
Sed 日常使用介绍 简介 是 环境下常用的流处理工具, 可以处理字符流, 文件或者二进制文件流。 各个 发行版都会配备 及其衍生的命令工具, 因此, 掌握该工具的基本用法, 足以满足我们日常的许多文本处理的任务。 以下采用示例的方式对 进行基本用法介绍. 如果有兴趣了解更高级的使用技巧, 本文采用
linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d