JsonCpp简单使用 

 

1、相关概念总结

(1)解析json的方法

Json::Value json;     //表示一个json格式的对象

Json::Reader reader;  //json解析

reader.parse(json_buf/*json格式的字符串*/,json,false);  //解析出json放到json中

    jsoncpp库中的Reader类用来将字串或者流载入解析器。后期可以用Reader里面的解析方法把Json字串解码为C++认识的数据。可以用 Json::Reader来声明一个Reader实例。Reader中最常用的就是一个parse方法,该方法用来将载入的json字串解析为C++格式的数据。

(2) 数组访问

Json::Value //格式如下

[["key1":value1],["key2":value2]]

Json::Value::const_iterator iter;  //迭代器

for(iter = input.begin(); iter != input.end(); iter++)

Json::Value::Members member=(*iter).getMemberNames();

*(member.begin());          // 输出 key1,key2

(*iter)[*(member.begin())];     //输出 value1,value2

    Value类是库中的核心类,用于存储各样格式的数据,可以包括int,double,short,char *,string,bool,object,array等几乎所有格式的数据。该库的编码和解码的核心功能都是用Value类实现的。就用以上的 Reader的parse方法来说,需要传入一个Value类别的引用值,就是用来存储Json数据的根值,并且可以用这个根值来存取其他的所有值。

(3) 对象访问

直接用 value["key"]即可

(4) 输出json格式串

    调用 Json::FastWriter的writer

    writer是该库的一个虚类,没有真正的实现encode的功能。需要重载里头的方法来实现真正的encode功能。FastWriter是该库中真正实现encode功能的类,用来实现将Value编码称为Json串。Json::StyledWriter 是格式化后的json。

    不支持utf-8格式的输出,需要自己调用writer之后,用iconv转化成utf-8字符串

2、示例代码

1)示例代码1

View Code

 

View Code

结果显示

可以看到,直接用wirter输出的json为非格式化的数据,而通过root.toStyledString()后,代码就是格式化的。

2)示例3,来源于官网

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-16
  • 2022-03-03
  • 2022-12-23
  • 2022-01-31
  • 2022-01-01
猜你喜欢
  • 2021-09-21
  • 2022-12-23
  • 2021-11-13
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案