GVKun编程网logo

RapidJSON 1.0 正式版发布,C++的JSON开发包(c++ jsoncpp)

13

在这篇文章中,我们将为您详细介绍RapidJSON1.0正式版发布,C++的JSON开发包的内容,并且讨论关于c++jsoncpp的相关问题。此外,我们还会涉及一些关于ajson0.2.0版发布,飞快

在这篇文章中,我们将为您详细介绍RapidJSON 1.0 正式版发布,C++的JSON开发包的内容,并且讨论关于c++ jsoncpp的相关问题。此外,我们还会涉及一些关于ajson 0.2.0版发布,飞快的JSON C++序列化库、apijson-framework 5.1.1 发布,腾讯 APIJSON 服务端框架、apijson-framework 5.3.0 发布,腾讯 APIJSON 服务端框架、apijson-framework 5.4.0 发布,腾讯 APIJSON 服务端框架•集成单元测试的知识,以帮助您更全面地了解这个主题。

本文目录一览:

RapidJSON 1.0 正式版发布,C++的JSON开发包(c++ jsoncpp)

RapidJSON 1.0 正式版发布,C++的JSON开发包(c++ jsoncpp)

RapidJSON 1.0 正式版发布,该版本在 1.0 Beta 的基础上实现了 100% 单元测试的覆盖率。

其他方面的改进包括:

  • Fixed a bug in trimming long number sequence (4824f12)

  • Fix double quote in unicode escape (#288)

  • Fix negative zero roundtrip (double only) (#289)

  • Remove an invalid Document::ParseInsitu() API (e7f1c6d)

  • Remove dead branches and add more unit tests for coverage

  • Standardize behavior of memcpy() and malloc() (0c5c153, #305, 0e8bbe5)

  • Add version macros (#311)

Rapidjson 是一个 C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 风格的 API 设计。

ajson 0.2.0版发布,飞快的JSON C++序列化库

ajson 0.2.0版发布,飞快的JSON C++序列化库

http://git.oschina.net/lordoffox/ajson


ajson

a utility for serialize C++ and json.

动机:

为什么要设计ajson?

在工作中经常有这样的需求,获得一段json编码的文本,将它解析为dom对象(比如rapidjson)。

然后读取各节点的值,为了方便,经常将其保存到某个数据结构。

然后这个dom就不需要了,这里dom的解析和构建就感觉到了浪费。

也有反过来的情况,将一个C++结构体,序列化到dom,然后将dom再次序列化到文本。

再次,感觉到了dom的浪费。

这时,我希望能有一个像javescript那样方便的将json文本到数据结构直接方便的转换。

于是ajson就诞生了。

简介


struct Person {

std::string Name;

int Age;

};

AJSON(Person , v.Name , v.Age))

Person obj;

char * json= "{ \"Name\" : \"Boo\", \"Age\" : 28}";

ajson::load_from_buff(obj,json);

以上代码解释了什么是AJSON,AJSON还支持stl的顺序容器。

再来个复杂点的例子

enum PhoneType

{

MOBILE = 0,

HOME = 1,

WORK = 2

};

struct PhoneNumber

{ std::string number;

PhoneType type = MOBILE;

PhoneNumber(std::string const& number_ = "", PhoneType type_ = MOBILE)

:number(number_),type(type_)

{}

};

struct Person

{

std::string name;

int32_t id;

std::string mail;

std::vector phones;

Person(std::string name_ = "" , int32_t id_ = 0, std::string mail_ = "")

:name(name_),id(id_),mail(mail_)

{}

};

struct AddressBook

{

std::vector peoples;

};

AJSON(PhoneNumber, v.number, v.type);

AJSON(Person, v.name, v.id, v.mail, v.phones);

AJSON(AddressBook, v.peoples);

结构体支持嵌套,stl容器也支持嵌套。


特点

ajson反序列化扫描的时候,直接将字面量类型同时解析,并将结果直接存入对应的数据结构字段。

如此一来就不需要临时的DOM,减少了中间处理的工作以及内存的申请释放,大大提升了性能。

使用方式简单,只要定义相应的宏AJSON,便可方便的序列化/反序列化操作。

依赖小,完全不依赖第三方库,只有一个头文件,省去了编译的麻烦。

要点

如果json内部附带了转义符,ajson会改动原始文本来避免新申请内存。

如果不希望原始文本被修改,请创建一份新的拷贝。

由于ajson全是内存操作,文件读取操作时,将会全部读入内存,所以不适合大文件操作。

其他

为什么要选择json而不是xml?

因为json的数据描述更符合C++的数据描述, 举个例子,xml有Node和Attribute两种方式, 给出一个C++的Struct的Member field, 应该对应那种类型呢,如果是写入, 那么写成Node呢还是Attribute呢, 这里面对一个二义性问题。


AJSON完全免费,没有任何限制,使用boost的授权方式。

0.2.0版本

相对于0.1.x版本,ajson没有功能上的增加,主要的改动是去掉了对rapidjson和boost的依赖,完全独立了。



更新内容

移除boost依赖

移除rapidjson依赖

使用方式微量调整

检测utf8的BOM头

读取性能大幅提升

apijson-framework 5.1.1 发布,腾讯 APIJSON 服务端框架

apijson-framework 5.1.1 发布,腾讯 APIJSON 服务端框架

image

image

apijson-framework 5.1.0-5.1.1 更新内容

  • 初始化:没有配置时改为不抛异常;优化报错提示语;

  • 升级自身和 APIJSON 版本至 5.1.0,升级 UnitAuto 版本至 2.7.2;

具体见 Release 发布版本。

 

apijson-framework 

腾讯 APIJSON 服务端框架,通过数据库表配置角色权限、参数校验等,简化使用。

使用

Access: https://gitee.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/MethodAccess.java

image

image

Request: https://gitee.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/Operation.java

image

image

 

使用 UnitAuto 实现零代码单元测试,具体见

https://gitee.com/TommyLemon/UnitAuto

 

https://gitee.com/APIJSON/apijson-framework

创作不易,右上角点 ⭐Star 支持下吧 ^_^

 

apijson-framework 5.3.0 发布,腾讯 APIJSON 服务端框架

apijson-framework 5.3.0 发布,腾讯 APIJSON 服务端框架

image

image

apijson-framework 5.1.5-5.3.0 更新内容

  • 调整测试链接,感谢 @jianlvliu 的贡献 #8 

  • 升级自身和 APIJSON 版本至 5.3.0,升级 fastjson 至 1.2.83;

  • 升级 MySQL, PostgreSQL 的 JDBC 版本分别为 8.0.29, 42.3.4;

具体见 Release 发布版本。

 

apijson-framework 

腾讯 APIJSON 服务端框架,通过数据库表配置角色权限、参数校验等,简化使用。

使用

Access: https://gitee.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/MethodAccess.java

image

image

Request: https://gitee.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/Operation.java

image

image

 

使用 UnitAuto 实现零代码单元测试,具体见

https://gitee.com/TommyLemon/UnitAuto

 

https://gitee.com/APIJSON/apijson-framework

创作不易,右上角点 ⭐Star 支持下吧 ^_^

apijson-framework 5.4.0 发布,腾讯 APIJSON 服务端框架•集成单元测试

apijson-framework 5.4.0 发布,腾讯 APIJSON 服务端框架•集成单元测试

image

image

apijson-framework 5.4.0 更新内容

  • 升级 APIJSON 和自身版本至 5.4.0

具体见 Release 发布版本。

 

apijson-framework 

腾讯 APIJSON 服务端框架,通过数据库表配置角色权限、参数校验等,简化使用。

使用

Access: https://gitee.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/MethodAccess.java

image

image

Request: https://gitee.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/Operation.java

image

image

 

使用 UnitAuto 实现零代码单元测试,具体见

https://gitee.com/TommyLemon/UnitAuto

 

https://gitee.com/APIJSON/apijson-framework

创作不易,右上角点 ⭐Star 支持下吧 ^_^

 

今天关于RapidJSON 1.0 正式版发布,C++的JSON开发包c++ jsoncpp的分享就到这里,希望大家有所收获,若想了解更多关于ajson 0.2.0版发布,飞快的JSON C++序列化库、apijson-framework 5.1.1 发布,腾讯 APIJSON 服务端框架、apijson-framework 5.3.0 发布,腾讯 APIJSON 服务端框架、apijson-framework 5.4.0 发布,腾讯 APIJSON 服务端框架•集成单元测试等相关知识,可以在本站进行查询。

本文标签: