您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
C++ 编写 json 生成器
 
 来源:简书   发布于:2016-12-6
   次浏览      
 

这个项目介绍 json 和一些常见的 json 库,并用 C++ 编写一个 json 生成器,生成 json 数据,并学习编写测试用例。

json 简介:

json 是 javaScript 的对象表示法,json 用于在服务器和客户端之前传送数据。

json 主要的结构:

名称/值对的集合。 在各种语言中,实现为对象,记录、结构、字典、哈希表,键列表或关联数组。

排序的值列表。 在大多数语言中,实现为数组、向量、列表或序列。

对象:是一个无序的名称/值对的集合。一个对象,开始与 ‘{’ 和以 ‘}‘ 结束。每个名称后跟:和名称/值对是分开的:

数组:数组值的有序集合。 数组的开头由 '[' 和 ']' 结束, 值用 ’,‘ 分开 :

值:用双引号的值可以是字符串、数字、或布尔型,或者是一个对象或数组。这些结构可以嵌套:

字符串:字符串是 Unicode 字符的零个或多个序列,在双引号中,使用反斜线转义。字符表示为一个字符串:

数字:数字很像 c 和 java 语言的数字类型,但是不是8进制和16进制的:

常用的 c++ json 库:

在 json 的官网中可以看到很多 json 库,我们比较熟悉的是 rapidjson ,jsoncpp ,json++ 。

rapidjson:

跨平台

编译器:Visual Studio、gcc、clang 等

架构:x86、x64、ARM 等

操作系统:Windows、Mac OS X、Linux、iOS、Android 等

容易安装

只有头文件的库。只需把头文件复制至你的项目中。

独立、最小依赖

不需依赖 STL、BOOST 等。

只包含,, ,, ,。

没使用 C++ 异常、RTTI

高性能

使用模版及内联函数去降低函数调用开销。

内部经优化的 Grisu2 及浮点数解析实现。

可选的 SSE2/SSE4.2 支持。

?jsoncpp:

读取和写入的JSON文档

在解析期间,C++ 风格的注释附加到元素

重写 JSON 文档保存原文档

JSON++:

JSON 解析器基于 C++11。

它解析 JSON 格式的字符串和文件,并生成一个代表 JSON 结构的内存树。

JSON 对象映射到标准哈希表、数组、向量。

JSON 类型映射到 c++ 类型。

使用标准类库,不用添加额外的函数库

编写 json 生成器

开发步骤:

编写 json-write.h;

泛型和重载;

核心函数的设计;

编写核心函数;

编写测试用例;

以上就是开发一个json生成器的开发步骤

   
次浏览       
相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]
Visual C++编程命名规则
任何时候都适用的20个C++技巧
C语言进阶
串口驱动分析
轻轻松松从C一路走到C++
C++编程思想
更多...   


C++并发处理+单元测试
C++程序开发
C++高级编程
C/C++开发
C++设计模式
C/C++单元测试


北京 嵌入式C高质量编程
中国航空 嵌入式C高质量编程
华为 C++高级编程
北京 C++高级编程
丹佛斯 C++高级编程
北大方正 C语言单元测试
罗克韦尔 C++单元测试
更多...