你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux下编译安装Jsoncpp及简单应用

[日期:2017-04-06] 来源:Linux社区  作者:corasql [字体: ]

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 <iostream>
#include <cstdio>
#include <stdio.h>
#include <string.h>
#include <memory>
#include <exception>
#include <fstream>
#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;  
} 

效果:

Linux下编译安装Jsoncpp及简单应用

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-04/142574.htm

linux
相关资讯       JsonCpp 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款