json解析入门(jsoncpp库)
2016-04-21 15:38
399 查看
在使用C++开发中,很多时候都会用到配置文件,配置文件常见的有json和xml这两种文件,其中json常用的解析库有:jsoncpp和boos库,下面就简单的讲讲jsoncpp是如何解析json文件的。
json文件内容如下所示:
现在使用jsoncpp解析上面的json文件
以上就是json文件的简单解析示例了,如果不想编译jsoncpp库,那么你只需要将jsoncpp的源代码拷贝到你的工程中,就可以使用jsoncpp库解析json文件了,为了读者方便,下面提供jsoncpp的源代码:http://download.csdn.net/detail/mitu405687908/9498176
json文件内容如下所示:
// josn文件内容 { "name" : "HaKing", "age" : 24, "array" : [ { "first":"HaKing" }, { "secend":"is" }, { "third":"coder" } ] }
现在使用jsoncpp解析上面的json文件
// 控制台输出需要包含的头文件 #include <iostream> // 获取json文件中数据所需要包含的头文件 #include <fstream> // 解析json需要包含的json库 #include "json.h" // 使用ostringstream需要包含的头文件 #include <sstream> int main(int argc, const char * argv[]) { std::ifstream ifs; ifs.open("/Users/Fsy/Desktop/C++/Json/haking.json"); Json::Reader reader; Json::Value root; if (!reader.parse(ifs, root,false)) { return -1; } std::ostringstream str; // 1.直接读取值 str << root["name"].asString() << " age is " << root["age"] << std::endl; // 2.读取数组 Json::Value arrayObj = root["array"]; for (unsigned int i = 0; i < arrayObj.size(); i++) { if (arrayObj[i].isMember("first")) { str << arrayObj[i]["first"].asString() << " "; continue; } if (arrayObj[i].isMember("secend")) { str << arrayObj[i]["secend"].asString() << " "; continue; } if (arrayObj[i].isMember("third")) { str << arrayObj[i]["third"].asString() << std::endl; continue; } } std::cout << str.str() << std::endl; return 0; } // 输出 /* HaKing age is 24 HaKing is coder */
以上就是json文件的简单解析示例了,如果不想编译jsoncpp库,那么你只需要将jsoncpp的源代码拷贝到你的工程中,就可以使用jsoncpp库解析json文件了,为了读者方便,下面提供jsoncpp的源代码:http://download.csdn.net/detail/mitu405687908/9498176
相关文章推荐
- Eclipse去除js(JavaScript)验证错误
- JS图片预加载
- 深入理解javascript的闭包
- javascript数组
- 访问WEB-INF目录中的JSP文件
- JavaScript全局变量与局部变量重名的情况
- js ie中实现拖拽
- JavaScript入门
- js回调函数
- js多个输入框运算计算结果输出到另一个输入框
- js根据不一样的移动设备调整到相应的页面
- JS中的call()方法的理解
- javascript继承实现
- JSP和Servlet那点事
- js操作cookie
- 图片实时预览JSP加js
- JS中对this的理解
- js中要声明变量吗?
- Json和String的转换
- JavaScript的瀑布流效果的详解及实现