linux+cppjson编译,Linux下编译安装Jsoncpp及简单应用

1. 准备工作

Jsoncpp下载:https://sourceforge.net/projects/jsoncpp/

Scons下载:https://sourceforge.net/projects/scons/

Linux:本文以红帽为例

2. Jsoncpp介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。

它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition -

December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#,

Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

“名称/值”对的集合(A collection of name/value

pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash

table),有键列表(keyed list),或者关联数组 (associative array)。 值的有序列表(An ordered

list of values)。在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

3.解压并配置SCons

将下载的 Scons压缩包,进行解压:

$tar -xvf scons-src-2.5.1.tar.gz

配置环境变量:

export SCONS_PATH=****** /scons-2.1.0

export SCONS_LIB_DIR=$SCONS_PATH/engine

4.解压配置Jsoncpp

将下载的 jsoncpp压缩包,进行解压:

$tar -xvf jsoncpp-src-0.5.0.tar.gz

配置环境变量:

export JSONCPP_PATH=/*******/jsoncpp-src-0.5.0

5.编译Jsoncpp

做好以上准备工作后,对jsoncpp进行编译:

首先,cd到jsoncpp解压的目录下:

cd jsoncpp-src-0.5.0

python $SCONS_PATH/src/script/scons.py platform=linux-gcc

6.举例

写了个小Demo,将系统内文件内容读取,并组织成Json串:

#include

#include

#include

#include

#include

#include

#include

#include "json/json.h"

using namespace std;

int main(int argc, char **argv) {

Json::Value root;

Json::Value header;

Json::Value arrayObj;

Json::Value item;

//Json头信息

header["pro"] = "17";

header["service_type"] = "GPS11";

//open文件

char buffer[256];

ifstream in("test.txt");

int i = 0;

if (! in.is_open())

{

cout << "Error opening file";

exit (1);

}

while (!in.eof() )

{

in.getline (buffer,100);

item[buffer] = i;

i++;

arrayObj.append(item);

item.clear();

}

root["HEADER"] = header;

root["BODYLIST"] = arrayObj;

std::string out = root.toStyledString();

std::cout << out << std::endl;

in.close();

return 0;

}

效果:

9802ff596910b20933437b2ad00ae89b.png

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值