c++的json库,jsoncpp安装和使用

一、cmake编译jsoncpp源码

(1)下载jsoncpp源码
源码地址:https://github.com/open-source-parsers/jsoncpp/tree/0.y.z
(2)解压源码

 
  1. unzip jsoncpp-0.y.z.zip

  2. cd jsoncpp-0.y.z

(3)使用cmake编译

$ mkdir -p build/debug

$ cd build/debug

$ cmake -DCMAKE_BUILD_TYPE=debug -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=. -G "Unix Makefiles" ../..

$ make

// 查看生成的静态和动态链接库

$ find . -name *.a

./src/lib_json/libjsoncpp.a

$ find . -name *.so

./src/lib_json/libjsoncpp.so

二、使用jsoncpp
(1)创建项目目录jsoncppUsage
(2)创建文件jsonCppUsage.cpp

// jsonCppUsage.cpp

#include <iostream>

#include "json/json.h"


using namespace std;


int main()

{

// 解析json串

string message = "{ \"data\" : { \"username\" : \"test\" }, \"type\" : 6 }";

Json::Reader reader(Json::Features::strictMode());

Json::Value parseData;

if (reader.parse(message.c_str(), parseData))

{

int type = parseData.get("type", 0).asInt();

Json::Value frameData = parseData.get("data", 0);

string username = frameData.get("username", 0).asString();

printf("type: %d, username: %s\n", type, username.c_str());

}


// 生成json串

Json::Value data;

Json::Value frame;

Json::FastWriter fastWriter;


frame["type"] = 66;

data["username"] = "test";

frame["data"] = data;


string result = fastWriter.write(frame);

printf("result: %s \n", result.c_str());


return 0;

}

(3)将jsoncpp头文件和生成的静态链接文件拷贝到项目目录(jsoncppUsage)

$ cp -rf jsoncpp-0.y.z/include jsoncppUsage

$ cp jsoncpp-0.y.z/build/debug/src/lib_json/libjsoncpp.a jsoncppUsage

$ tree jsoncppUsage/

jsoncppUsage/

├── include

│   └── json

│       ├── assertions.h

│       ├── autolink.h

│       ├── config.h

│       ├── features.h

│       ├── forwards.h

│       ├── json.h

│       ├── reader.h

│       ├── value.h

│       ├── version.h

│       └── writer.h

├── jsonCppUsage.cpp

└── libjsoncpp.a

$ g++ jsonCppUsage.cpp libjsoncpp.a -Iinclude

$ ./a.out 

type: 6, username: test

result: {"data":{"username":"test"},"type":66}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值