Json学习笔记一

Json学习笔记
GitHubWeb代码下载
Json文件:test.json

{
    "adplaces":
    [
        {
            "str_itemspaceid": "12224",
            "i_width": 320,
            "i_height": 640
        },
        {
            "str_itemspaceid": "12225",
            "i_width": 325,
            "i_height": 645
        }
    ],
    "i_apt": 0,
    "str_ip": "10.1.23.12"  
}

Json CPP文件: testjson.cpp

//testjson.cpp
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <fstream>
#include "./json/json.h"

using namespace std;

bool ParseJsonFromFile(const char* filename);

int main()
{
    if(!ParseJsonFromFile("./data/test.json")){
        printf("ParseJsonFromFile error.\n");
        return 0;
    }
    return 0;
}

bool ParseJsonFromFile(const char* filename)
{    
    Json::Reader reader;      
    Json::Value root;           

    std::ifstream is;
    is.open(filename);

    if (reader.parse(is, root))  
    {
        int     i_apt = root["i_apt"].asInt();
        string  str_ip = root["str_ip"].asString();
        printf("i_apt:%d, str_ip:%s\n", i_apt, str_ip.c_str());

        //adplaces
        Json::Value adplaces = root["adplaces"];
        int adp_size = adplaces.size();
        printf("adp_size: %d\n", adp_size);
        for( int i=0; i<adp_size; i++){
            string str_itemspaceid = adplaces[i]["str_itemspaceid"].asString();
            int i_width = adplaces[i]["i_width"].asInt();
            int i_height = adplaces[i]["i_height"].asInt();
            printf("adplaces[%d] str_itemspaceid=%s, i_width=%d, i_height=%d\n",
                    i, str_itemspaceid.c_str(), i_width, i_height);
        }

    }else{
        printf("reader.parse() error.\n");
        is.close();
        return false;
    }
    is.close();
    return true;
}

Makefile文件:

#Makefile
OBJECT=testjson.o 

CPP=g++ -g -std=c++11


IJSONPATH=
LJSON=./json/libjson_linux-gcc-5.3.1_libmt.so

INDEBUG=-I. 
LIBFLAG=-lpthread -ldl 

all: testjson

$(OBJECT):%.o:%.cpp
    $(CPP) ${INDEBUG} ${LIBFLAG} -c $< -o $@

testjson:$(OBJECT)
    $(CPP) -o testjson ${OBJECT} ${INDEBUG} ${LIBFLAG} $(LJSON)
clean:
    $(RM) *.o  testjson

参考:
C++处理JSON示例
C++简单使用Jsoncpp来读取写入json文件
C++解析Json,使用JsonCpp读写Json数据
linux下正确安装jsoncpp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值