#include <QtCore/QCoreApplication>

#include <boost/property_tree/ptree.hpp>

#include <boost/typeof/typeof.hpp>

#include <boost/property_tree/json_parser.hpp> 

#include <boost/property_tree/xml_parser.hpp>

#include <iostream> 

using namespace std;

using namespace boost::property_tree;

int main(int argc, char *argv[])

{ 

    QCoreApplication a(argc, argv); 

    string s = "{/"age/" : 26,/"study/":{/"language/":{/"one/":/"chinese/",/"two/":/"math/"},/"fee/":500,/"subject/":[{/"one/":/"china/"},{/"one/":/"Eglish/"}]},/"person/":[{/"id/":1,/"name/":/"chen/"},{/"id/":2,/"name/":/"zhang/"}],/"name/" : /"huchao/"}";
string s = "{age : 26,study:{
language:{one:chinese,two:math},
fee:,
subject:[{one:china},{one:Eglish}]
},
person:[{id:,name:chen},{id:,name:zhang}],
name : huchao}";
ptree pt; stringstream stream(s); //这步不知道为什么要这样 read_json<ptree>( stream, pt); pt.put("study.language.one","physics");//修改数据(这步废了好久时间,最后通过读英文资料解决) pt.put("study.fee",); string s1=pt.get<string>("age"); cout<<s1<<endl; string s2=pt.get<string>("name"); cout<<s2<<endl; string s3=pt.get_child("study").get_child("language").get<string>("one"); cout<<s3<<endl; string s4=pt.get_child("study").get<string>("fee"); cout<<s4<<endl; ptree p1,p2; p1 = pt.get_child("study").get_child("subject");//访问多级节点中的数组数据 for (ptree::iterator it = p1.begin(); it != p1.end(); ++it) { p2 = it->second; //first为空 cout<<"subject="<<p2.get<string>("one")<<endl; } return ; return a.exec(); } // pt.put("conf.theme", "Matrix Reloaded"); // pt.put("conf.clock_style", 13); // pt.put("conf.gui", 0); // pt.put("conf.urls.url","http://www.url4.org"); // pt.add("conf.urls.url","http://www.url4.org"); // write_json("conf.json", pt); // read_json("conf.json",pt); // cout<< pt.get<string>("conf.theme") <<endl; // cout<< pt.get<int>("conf.clock_style") <<endl; // cout<< pt.get<long>("conf.gui") <<endl; // cout<< pt.get("conf.no_prop", 100) <<endl; // BOOST_AUTO(child, pt.get_child("conf.urls")); // for(BOOST_AUTO(pos,child.begin()); pos != child.end(); ++pos) // { // cout<<pos->second.data()<<","; // } // cout<<endl; // ptree pt_1,pt_11,pt_12; // pt_11.put("id","3445"); // pt_11.put<int>("age",29); // pt_11.put("name","chen"); // pt_12.push_back(make_pair("",pt_11)); // pt_12.push_back(make_pair("",pt_11)); // //replace or create child node "data" // pt_1.put_child("data",pt_12); // ostringstream os; // write_json(os,pt_1); // cout<<os.str()<

里面的有些还是比较模糊,原理不清

vs提示个错误:pnode.get<int>("x")不存在从 "char [2]" 转换到 "boost::property_tree::string_path<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,boost::property_tree::id_translator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >" 的适当构造函数

查了半天结果可以运行,这VS也有点坑人吧

boost解析json的更多相关文章

  1. boost解析json(2)

    "{ "A":1, "B":{ "C":2, "D":3 }, "E":[ {" ...

  2. Boost property_tree解析json

    使用Boost property_tree解析json 之前使用jsoncpp解析json,现在才知道boost就有解析的库,学习一下吧 property_tree可以解析xml,json,ini,i ...

  3. Boost.JSON Boost的JSON解析库(1.75首发)

    目录 目录 Boost的1.75版本新库 JSON库简介 JSON的简单使用 编码 最通用的方法 使用std::initializer_list json对象的输出 两种对比 解码 简单的解码 增加错 ...

  4. 更好更快更高效解析JSON说明

    现在来一个实例解析类,直接就把解析JSON到QVariant去了.唯一不足的是没有搞错误处理,具体方法也请各位自行参考json-c的发行文档,这样比较方便叙述,STL或者Boost我都没有认真接触过, ...

  5. boost生成json中的put操作

    ptree中的put操作后可以加<>,指定类型,不加<>采用默认的类型,感觉不加反而更好用.用法见下面例子. #include <iostream> #includ ...

  6. boost生成json

    boost property_tree解析json文件相关文档如下:json_parser.basic_ptree json_parser:read_json(filename, ptree):用于将 ...

  7. Xamarin.Android下获取与解析JSON

    一.新建项目 1.新建一个Android项目,并命名为为NetJsonList 2.右击引用,选择添加引用,引用System.Json.dll 二.同步请求 既然是跨平台,我们自然不能按照java下的 ...

  8. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  9. 阶段一:通过网络请求,获得并解析JSON数据(天气应用)

    “阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...

随机推荐

  1. Android 判断现在系统存储器是“手机存储”还是“SD存储”

    import android.os.storage.StorageManager; String fileDir = null;            StorageManager storageMa ...

  2. SQL SERVER with递归示例一则

    WITH SUBQUERY AS ( SELECT ORGID FROM OM_ORGANIZATION WHERE PARENTORGID = 'ROOT' UNION ALL SELECT B.O ...

  3. ZooKeeper学习第五期--ZooKeeper管理分布式环境中的数据

    引言 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法.Zab协议.通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们 ...

  4. CSS3 chart

    利用CSS3技术生成统计图. 原理:利用元素的百分比算出旋转度数.类似于斗地主时,手拿扑克牌的形状. 程序源码: <!DOCTYPE html> <html> <head ...

  5. Object C学习笔记15-协议(protocol)

    在.NET中有接口的概念,接口主要用于定义规范,定义一个接口关键字使用interface.而在Object C 中@interface是用于定义一个类的,这个和.NET中有点差别.在Object C中 ...

  6. ModernUI教程:第一个ModernUI应用(采用项目模板)

    在我们开始之前,请确保你已经为你的Visual2012或者2013安装了ModernUI for WPF的模板扩展: >>从Visual Studio 库 下载并安装VSIX扩展 > ...

  7. 要期末了搞不了OI了额……

    TAT~~~~~~期中完挂,求RP求期末逆袭

  8. [USACO2002][poj1945]Power Hungry Cows(启发式搜索)

    Power Hungry CowsTime Limit: 1000MS Memory Limit: 30000K Total Submissions: 4570 Accepted: 1120 Desc ...

  9. 传说中的WeixinJSBridge和微信rest接口

    直接上图,金山的APP“微信导航”,从界面上看有粉丝数等关键数据,实现了直接关注功能,莫不是rest接口?这江湖是大佬们的江湖,小喽啰只有眼馋的份咯. 很早就听说过WeixinJSBridge,不过官 ...

  10. Eclipse字体大小设置

    打开Eclipse,在主界面下Window->Preferences->General->Appearance->Colors and Fonts, 然后在右边展开框Basic ...