JSONCPP操作帮助
来源:互联网 发布:lcd1602只亮不显示数据 编辑:程序博客网 时间:2024/05/19 03:42
JSONCPP解析时比较麻烦,要判这判那的,于是直接简单封装了一个helper,如果要想面向对象可以直接改成类的静态成员。
jsoncpp_helper.h
#pragma once#if( defined(WIN32) || defined(WIN64) )#include "jsoncpp/include/json/json.h"#else#include "jsoncpp/json/json.h"#endif#include <string>bool _TrimJsonValueString(Json::Value &Root, const char* pszNodeName, std::string& strOut);bool _TrimJsonValueInt(Json::Value &Root, const char* pszNodeName, int& nOut, bool bFromString = false);bool _TrimJsonValueUint(Json::Value &Root, const char* pszNodeName, unsigned int& nOut, bool bFromString = false);bool _TrimJsonValueInt64(Json::Value &Root, const char* pszNodeName, int64_t& nOut);bool _TrimJsonValueUint64(Json::Value &Root, const char* pszNodeName, uint64_t& nOut);jsoncpp_helper.cpp:
#include "jsoncpp_helper.h"bool _TrimJsonValueString(Json::Value &Root, const char* pszNodeName, std::string& strOut){if (Root.isMember(pszNodeName) && !Root[pszNodeName].isNull() && Root[pszNodeName].isString()){strOut = Root[pszNodeName].asString();return true;}return false;}bool _TrimJsonValueInt(Json::Value &Root, const char* pszNodeName, int& nOut, bool bFromString){if (bFromString){std::string strTmp;if (!_TrimJsonValueString(Root, pszNodeName, strTmp)) return false;nOut = atoi(strTmp.c_str());return true;}if (Root.isMember(pszNodeName) && !Root[pszNodeName].isNull() && Root[pszNodeName].isInt()){nOut = Root[pszNodeName].asInt();return true;}return false;}bool _TrimJsonValueUint(Json::Value &Root, const char* pszNodeName, unsigned int& nOut, bool bFromString){if (bFromString){std::string strTmp;if (!_TrimJsonValueString(Root, pszNodeName, strTmp)) return false;nOut = atoi(strTmp.c_str());return true;}if (Root.isMember(pszNodeName) && !Root[pszNodeName].isNull() && Root[pszNodeName].isInt()){nOut = Root[pszNodeName].asInt();return true;}return false;}bool _TrimJsonValueInt64(Json::Value &Root, const char* pszNodeName, int64_t& nOut){std::string strTmp;if (!_TrimJsonValueString(Root, pszNodeName, strTmp)) return false;nOut = atoll(strTmp.c_str());return true;}bool _TrimJsonValueUint64(Json::Value &Root, const char* pszNodeName, uint64_t& nOut){std::string strTmp;if (!_TrimJsonValueString(Root, pszNodeName, strTmp)) return false;nOut = atoll(strTmp.c_str());return true;}
0 0
- JSONCPP操作帮助
- c++ jsoncpp操作
- jsoncpp的读写操作
- JsonCpp操作数组对象
- jsoncpp文件操作
- JSONCPP
- jsoncpp
- jsoncpp
- JsonCpp
- jsoncpp
- C#操作Excel帮助
- git操作帮助手册
- JsonHelper操作帮助类
- Excel操作帮助类
- JsonHelper 操作帮助类
- VBS ADODB操作帮助手册
- jdbc操作数据库帮助类
- EntityFramework DB操作帮助类
- javax.servlet.ServletException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
- 稳定排序:冒泡排序
- 编写程序,判断输入的字符串是否回文
- unity wav 格式音频转换为二进制文件
- 开发实用---修改Eclipse快捷注释的模板
- JSONCPP操作帮助
- 原始类型.Class 及 Class.forName(String class) 与 类名.class 的区别
- Linux下忘记MySQL的root密码的解决方法
- 二叉树怎样序列化才能重建
- JVM 学习笔记(三) 垃圾收集器与内存分配策略
- IAR编辑器字体配置
- A
- 扛得住mysql 性能优化
- 大话设计模式读书笔记(十四) 适配器模式