时间:2021-05-20
前言:
曾经一段时间XML成为互联网业界内的数据传输格式标准,但有人对XML提出了质疑,认为XML数据格式比较繁杂,冗长等,于是提出了一种新的表示格式—JSON。
对于JSON格式,在此就不作详细的说明了,下面主要讨论下C++解析json文件的工具—Jsoncpp的使用。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要对VS2008中使用Jsoncpp解析json的方法做一下记录。
Jsoncpp是个跨平台的开源库,下载地址:http://sourceforge.net/projects/jsoncpp/。
解压:tar -zvxf jsoncpp-src-0.5.0.tar.gz
进入到jsoncpp解压目录下,执行命令:
sudo scons platform=linux-gcc将/jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到 /usr/local/include/
将jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a 拷贝到 /usr/local/lib/ 下,并为了方便使用,将其重命名为libjson.a
Jsoncpp使用说明:
下面通过一个简单的case说明jsoncpp里主要的接口函数,通过这些基本的函数便可以完成的Json文件的解析和处理。
jsoncpp中主要的类:
json示例:
[ { "name": "json", "lines": [ { "line": "1" }, { "line": "2" }, { "cpp": "jsoncpp" }, { "java": "jsoninjava" }, { "php": "support" } ] }, { "name": "c++", "lines": [ { "line": "3" }, { "line": "4" }, { "cpp": "jsoncpp" }, { "java": "jsoninjava" }, { "php": "nosupport" } ] }]C++代码:
#include <iostream>#include <fstream>#include <string>#include "../src/json/json.h" using namespace std;using namespace Json;void main(){ fstream ofile("json.json"); string strjson; if (!ofile.is_open()) { return; } string strline; while (getline(ofile, strline)) { strjson += strline; } ofile.close(); Json::Reader reader; // 读取器 Json::Value root; // Value的值值可以是任一对象 if (reader.parse(strjson, root)) { int size = root.size(); // 根结点个数 for (int j = 0; j < size; j++) { cout << root[j]["name"].asString() << endl; const Json::Value arrayObj = root[j]["lines"]; for (int i = 0; i < arrayObj.size(); i++) { if (arrayObj[i].isMember("line")) { cout << arrayObj[i]["line"].asString() << endl; } if (arrayObj[i].isMember("cpp")) { cout << arrayObj[i]["cpp"].asString() << endl; } if (arrayObj[i].isMember("java")) { cout << arrayObj[i]["java"].asString() << endl; } int m = 0; } } } }到此这篇关于C++使用jsoncpp解析json的方法示例的文章就介绍到这了,更多相关C++ jsoncpp解析json内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C++使用JsonCpp库操作json格式数据的方法。分享给大家供大家参考,具体如下:前言JSON是一个轻量级的数据定义格式,比起XML易学易用,
本文以实例形式讲述了C#解析JSON的方法,C#封装了对XML和JSON解析的类库,使用相当方便!具体用法如下:1.主要用到的类:主要用到了JavaScript
mysql(5.6及以下)解析json#json解析函数DELIMITER$$DROPFUNCTIONIFEXISTS`json_extract_c`$$CRE
本文实例讲述了C#将Json解析成DateTable的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:#region将Json解析成DateTa
使用VSCode编译C/C++时,会存在找不到头文件的情况这时候需要设置两个地方:1.c_cpp_properites.json2.task.json以下是我修