写了个webserver,同事要求用json解析。之前老用JsonCpp,现在都有点忘了,现在记录一下解析json串。
使用跨平台的开源库JsonCpp来解析Json。
1、下载jsoncpp
下载地址:
https://github.com/open-source-parsers/jsoncpp
2、使用Jsoncpp包中的.cpp和.h文件
解压上面下载的jsoncpp-master.zip文件,把jsoncpp-master\include\json文件夹和jsoncpp-master\src\lib_json文件夹保留下来,其他删掉。
在需要使用JsonCpp的文件中包含json头文件即可
工程中需要包含如下文件:
json/json.h
json_reader.cpp
json_value.cpp
json_writer.cpp
Makefile中可这么添加
注:jsoncpp-master文件夹和Makefie处在同一目录下
INCLUDE = -Ijsoncpp-master/include
VPATH = log:jsoncpp-master/src/lib_json
OBJ = json_reader.o json_value.o json_writer.o
//解析串 char* p
Json::Reader reader;
Json::Value root;
if (reader.parse(p, root)) // reader将Json字符串解析到root,root将包含Json里所有子元素
{
std::string upload_id = root["template"].asString(); // 访问节点template
int code = root["id"].asInt(); // 访问节点id
}