C++ 使用Poco库操作 json 文件

flyfish

#include <string>
#include <iostream>
#include <sstream>
#include <vector>#include <Poco/PatternFormatter.h>
#include <Poco/FormattingChannel.h>
#include <Poco/FileChannel.h>
#include <Poco/AutoPtr.h>
#include <Poco/Logger.h>
#include <Poco/ConsoleChannel.h>
#include <Poco/SplitterChannel.h>
#include <Poco/Exception.h>
#include <Poco/File.h>
#include <Poco/Path.h>
#include <Poco/DirectoryIterator.h>
#include <Poco/Exception.h>
#include <Poco/JSON/Parser.h>
#include <Poco/JSON/ParseHandler.h>
#include <Poco/JSON/JSONException.h>
#include <Poco/StreamCopier.h>
#include <Poco/Dynamic/Var.h>
#include <Poco/JSON/Query.h>
#include <Poco/JSON/PrintHandler.h>
#include <Poco/FileStream.h>int main(int argc, char** argv)
{std::string json = "{ \"name\" : \"Franky\", \"children\" : [ \"Jonas\", \"Ellen\" ] }";Poco::JSON::Parser parser;Poco::Dynamic::Var result = parser.parse(json);std::cout<<result.toString()<<std::endl;//    {//      "children": [//        "Jonas",//        "Ellen"//      ],//      "name": "Franky"//    }Poco::JSON::Object::Ptr pObject = result.extract<Poco::JSON::Object::Ptr>();std::string name = pObject->getValue<std::string>("name");std::cout<<name<<std::endl;//    FrankyPoco::JSON::Array::Ptr pChildren = pObject->getArray("children");for (int i = 0; i < pChildren->size(); i++){Poco::Dynamic::Var element = pChildren->get(i);std::cout<<element.toString()<<std::endl;}//    Jonas//    EllenPoco::JSON::Object single;single.set("name", "a");single.set("id", 1);Poco::JSON::Array alphabet;Poco::JSON::Object a;a.set("name", "a");a.set("id", "1");alphabet.add(a);Poco::JSON::Object b;b.set("name", "b");b.set("id", "2");alphabet.add(b);Poco::JSON::Object root;root.set("root_0",single);root.set("root_1",alphabet);Poco::Dynamic::Var js(root);std::string str =  js.toString();std::cout << str << std::endl;//    {//      "root_0": {//        "id": 1,//        "name": "a"//      },//      "root_1": [//        {//          "id": "1",//          "name": "a"//        },//        {//          "id": "2",//          "name": "b"//        }//      ]//    }}

cmakelist.txt的配置

cmake_minimum_required(VERSION 3.5)project(test LANGUAGES CXX)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# set the POCO paths and libs
set(POCO_PREFIX "/usr/local") # the directory containing "include" and "lib"
set(POCO_INCLUDE_DIR"${POCO_PREFIX}/include")
set(POCO_LIB_DIR "${POCO_PREFIX}/lib")
set(POCO_LIBS"${POCO_LIB_DIR}/libPocoNet.so""${POCO_LIB_DIR}/libPocoUtil.so""${POCO_LIB_DIR}/libPocoFoundation.so""${POCO_LIB_DIR}/libPocoNetSSL.so""${POCO_LIB_DIR}/libPocoDataSQLite.so""${POCO_LIB_DIR}/libPocoData.so""${POCO_LIB_DIR}/libPocoXML.so""${POCO_LIB_DIR}/libPocoJSON.so")add_executable(examplemain.cpp
)
target_link_libraries(example "${POCO_LIBS}")

操作json文件

std::ostringstream ostr;
std::string file_path="/media/read_0.json";
Poco::File input(file_path);
if ( input.exists() )
{Poco::FileInputStream fis(file_path);Poco::StreamCopier::copyStream(fis, ostr);Poco::JSON::Parser parser;Poco::Dynamic::Var result = parser.parse(ostr.str());std::cout<<result.toString()<<std::endl;}
else
{std::cout << file_path << " doesn't exist!" << std::endl;return 1;
}

C++ 使用Poco库操作 json 文件相关推荐

  1. 【C++ 之 C++ 操作 json 文件(C++读写json文件)及jsoncpp配置详解】

    文章目录 一.json文件简介 1.json文件 2.json与其他存储数据方式比较 二.C++操作json文件 1.jsoncpp 库下载 2.C++从字符串中读取json 1.简单json样式 2 ...

  2. C++ 之 C++ 操作 json 文件(C++读写json文件)及jsoncpp配置详解

    目录 前言 一.json文件简介 1.json文件 2.json与其他存储数据方式比较 二.C++操作json文件 1.jsoncpp 库下载 2.C++从字符串中读取json 3.C++从文件中读取 ...

  3. C++操作.json文件

    1.JSON简介 1.1 什么是JSON: JSON是一种纯字符串形式的数据,它本身不提供任何方法(函数),非常适合在网络中进行传输.JavaScript.PHP.Java.Python.C++等编程 ...

  4. C++ 使用Poco库操作SQLite数据库

    C++ 使用Poco库操作SQLite数据库 flyfish 文章目录 C++ 使用Poco库操作SQLite数据库 数据库插入记录 数据库插入记录方式2 数据库插入记录方式3 更方便的数据库插入记录 ...

  5. Go 学习笔记(20)— Go 操作 json 文件(编码生成 json、解码 json 为 map、解码 json 为 struct)

    1. Json 概述 Go 语言对于标准格式的编码和解码都有良好的支持,由标准库中的 encoding/json . encoding/xml . encoding/asn1 等包提供支持并且这类包都 ...

  6. Python操作json文件

    1.说明:dumps:将python中的字典转换为字符串,loads:将字符串转换为字典,dump:将数据转换成字符串并写入到json文件中,load:把文件打开,并把字符串转换为字典 import ...

  7. php操作json文件

    文章目录 1.读取json文件 2.在json文件追加内容 3.创建json文件 4.删除json的内容 首先存在一个json文件,为storage.json,内容如下: 1.读取json文件 代码: ...

  8. 生信(八)zlib库操作fq-gz文件

    关键词:fq; gz; zlib 近期感谢yongzhe同学的需求,让我有机会能够用c来实操fq.gz的处理. 具体需求很简单: 输入一个index,将fq1和fq2(两个都是gz文件)中能够匹配该i ...

  9. python通过PyYaml库操作yaml文件

    1.YAML文件介绍 YAML全称YAML Aint't a Markup Language(YAML不是一种标记语言),是一种易读的序列化语言 通常应用在一些数据代码分离的场合,比如配置文件中 2. ...

最新文章

  1. CleanMyMac扩展管理功能
  2. Weblogic 10.3.6 for linux 集群安装
  3. 使用 yolov3训练 voc2012
  4. 太原未来小使者英语大赛_哥伦比亚2020年中学生“汉语桥”大赛成功在线举办...
  5. Oracle事务之一:锁和隔离
  6. 2560介绍_炒股高手收益翻10倍,只因妙用这一招2560战法,看了都不亏了
  7. 软件测试 学习之路 MYSQL安装
  8. 可用性SLA还不懂?看完这个故事就懂了........ | 凌云时刻
  9. (Matlab实现)基于蒙特卡洛模拟的大规模电动车充电模型
  10. 计算机毕业设计选题推荐之nodejs+vue校园外卖订餐配送系统
  11. 《数据结构与算法》知识小结
  12. 如何给MFC对话框添加背景图片
  13. 如何解决All flavors must now belong to a named flavor dimension.?
  14. 美国网红python微博_利用Python对微博网红进行对比
  15. TortoiseGit 使用
  16. 开复先生与"智慧选择"
  17. unity螺旋丸特效实现
  18. 高德地图水波纹覆盖物+点击覆盖物切换弹窗显示与隐藏
  19. 实现EasyExcel对Excel读操作(读操作)
  20. 新浪微博的id和mid互相转换(10进制和62进制转换)

热门文章

  1. 【论文笔记】PSEUDOSEG: DESIGNING PSEUDO LABELS FOR SEMANTIC SEGMENTATION
  2. 法国 计算机金融 大学,法国金融硕士专业大学排名(2020年QS)_快飞留学
  3. springboot笔记(硅谷)
  4. 2021算法竞赛入门班第一节课枚举贪心习题
  5. 2023前端vue高频面试题
  6. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标
  7. dcgan_faces_tutorial.ipynb
  8. 2062【例1.3】电影票-一 c++语言入门-c++语言
  9. Opencv C++ 学习视频整理源代码(1)
  10. 保弘实业|大学生理财必须做到这四点