xpackJSON/XML/BSON 与 C++ 结构体的转换库
xpack 是实现 C++ 结构体和 JSON/XML/BSON 互转的库。C++ 初学者可以通过该项目学到高阶的宏技巧和初级的 SFINAE 写法。
基本用法
- 结构体后面用XPACK宏包含各个变量,XPACK内还需要一个字母,不同字母的意义请参考FLAG
- 用xpack::json::encode把结构体转json
- 用xpack::json::decode把json转结构体
#include <iostream> #include "xpack/json.h" // Json包含这个头文件,xml则包含xpack/xml.h using namespace std; struct User { int id; string name; XPACK(O(id, name)); // 添加宏定义XPACK在结构体定义结尾 }; int main(int argc, char *argv[]) { User u; string data = "{\"id\":12345, \"name\":\"xpack\"}"; xpack::json::decode(data, u); // json转结构体 cout<<u.id<<';'<<u.name<<endl; string json = xpack::json::encode(u); // 结构体转json cout<<json<<endl; return 0; }
容器支持
目前支持下列容器(std)
- vector
- set
- list
- map<string, T>
- map<integer, T> // 仅JSON,XML不支持
- unordered_map<string, T> (需要C++11支持)
- shared_ptr (需要C++11支持)
评论
pugixml轻量级 C++ 的 XML 处理库
pugixml是一个轻量级的C++XML处理库。它具有以下特点:1、类似DOM接口并具有丰富的遍历/修改功能。2、非常快的XML解析验证。3、XPath1实现复杂的数据驱动的树查询。4、完全Unico
pugixml轻量级 C++ 的 XML 处理库
0
SmooksJava的XML转换框架
Smooks是一款基于LGPL协议的开源Java框架,主要用于处理XML与non-XML格式(包括CSV,EDI,Java)之间的转换。Smooks于2008年5月发布v1.0,目前最新的版本已是v1
SmooksJava的XML转换框架
0
TOML-To-GoTOML Go 语言结构体转换工具
TOML 的目标是成为一个极简的配置文件格式。TOML 被设计成可以无歧义地被映射为哈希表,从而被多
TOML-To-GoTOML Go 语言结构体转换工具
0