导言:我已经有好几个项目使用了libjson库,感觉这是个挺不错的JSON库,顺便翻译了下他文档的主要部分,希望和大家一起了解学习。由于内容较多,无法全部发在博客文章上,大家可以通过我的github下载完整文档。https://github.com/yaocoder/MyDocument/blob/master/libjson%E6%96%87%E6%A1%A3%E7%BF%BB%E8%AF%91.pdf

关于libjson

项目主页:http://sourceforge.net/projects/libjson/

libjson 是一个适用于C和C++语言高效的并且可灵活定制的json库。它拥有针对C++的接口,使C++开发人员也能够在他们的程序中使用json,同时由于多数libjson的方法(函数)是内敛的,更进一步提升了库的效率。它也为其他类型的语言提供了C风格的接口和共享库。文档将会讲解如何去构建、优化libjson来适应你的需求,并且对C、C++接口进行详细的说明。

libjson当前最新版本为7.*,如果你想把程序中的libjson 5或是更早的版本升级到此版本,请注意相应的接口变化,但是也不用担心,所有的函数功能没有变化,它们只是更完善,更标准化。如果你想从libjson 6升级,仅有的变化是 json_validate这个接口。 libjson的接口在升级中(完善和修正bug)并没有发生变化,你可以查看每一次版本升级的changelog。

libjson不仅高效,功能也很丰富,包括parsers, writers, builders, formatters, validators…  ,它还可以根据你的需求进行灵活的定制。也许你会感到奇怪:libjson看上去如此轻量但是却拥有一个200多页的文档和很多文件,但事实上你可以根据你的需求只使用需要的部分。JSONOptions.h文件中介绍了这些配置选项。在后面的部分将给你详细介绍这些配置选项的适用场景, 这些选项允许你根据自己的程序去做相应的优化。libjson设计的很精巧,它只使用少量内存,并且很高效。所以尽量不要对库本身做一些不紧要的微调。

libjson相比其他库更具备可定制性,包括mutex管理,垃圾收集(garbage collection),内存管理(memory control),unicode支持,可以灵活的定制而非只提供给你默认的行为。它拥有纯净的C接口,所有C风格的接口都有 json_前缀。它也拥有非常直观的C++接口,比如迭代器(iterators),与STL的风格相似。C和C++两种库共享了部分代码,但也有各自特定的代码。

libjson是安全的,它的默认行为就具有抵御拒绝服务攻击(DoS)的能力,并且它还拥有其他可配置的安全选项。

支持的平台:

libjson官方支持并且进行过测试验证的是以下平台:

  • gcc (OSX) ——完全支持

  • llvm (OSX) - 完全支持

  • gcc (LInux) - 完全支持

  • MinGW (Windows) - 支持, 部分经过测试

  • Visual C++ (Windows) - 支持, 部分经过测试

以下主要是讲解如何通过配置JSONOptions.h构建你需要的libjson...

本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/1154617如需转载请自行联系原作者

yaocoder

libjson文档翻译相关推荐

  1. 【iOS官方文档翻译】iOS蓝牙的基本概念

    之前写了[iOS官方文档翻译]iOS的蓝牙连接.数据接收及发送一文,介绍了怎样进行蓝牙通讯,但是很多基本概念没有进行解释,看起来可能有点吃力,所以现在再翻译一篇苹果对官方蓝牙4.0一些基本概念介绍的文 ...

  2. Sencha-概念-Layouts(布局)(官网文档翻译8)

    Sencha-概念-Layouts(布局)(官网文档翻译8) 介绍和HBox 布局描述了在您的应用程序的组件的大小和位置.例如,一个电子邮件客户端可能具有固定到左边的消息的列表,以说,可用的宽度的三分 ...

  3. Laravel 5.6 中文文档翻译完成,译者 60 人,耗时 10 天

    图片来自 laravel-news.com Laravel 5.6 的文档地址: Laravel 5.6 文档页面 总结 Laravel 5.6 文档翻译完成,总共耗时 10 天,参与用户 60 人. ...

  4. python翻译程序-Python桌面应用案例:TXT文档翻译工具(源代码)

    搞定了Word文档和PDF文档翻译工具的案例,总觉得还差了一点,仔细想了下,明白了,原来差了一个TXT文本文件翻译工具案例.这个就更简单了--在PDF文档翻译工具基础上加了两个函数,就可以支持TXT文 ...

  5. TiDB 官方设计文档翻译(三)

    这个系列共三篇译文:  TiDB 官方设计文档翻译(一)  TiDB 官方设计文档翻译(二)  TiDB 官方设计文档翻译(三) 原文:  https://pingcap.github.io/blog ...

  6. TiDB 官方设计文档翻译(二)

    这个系列共三篇译文:  TiDB 官方设计文档翻译(一)  TiDB 官方设计文档翻译(二)  TiDB 官方设计文档翻译(三) 原文:  https://pingcap.github.io/blog ...

  7. TiDB 官方设计文档翻译(一)

    TiDB是新兴的NEWSQL数据库,由国内的PINGCAP团队研发.  有关于TiDB的架构.部署和运维,官方有中文的文档,链接是:  https://github.com/pingcap/docs- ...

  8. 欢迎参与 KubeVela 官方文档翻译活动

    来源 | 阿里巴巴云原生公众号 背景 KubeVela v1.0 启用了新的官网架构和文档维护方式,新增功能包括文档版本化控制.i18n 国际化以及自动化流程.但目前 KubeVela 官方文档只有英 ...

  9. Sencha-概念-Events(事件)(官网文档翻译10)

    Sencha-概念-Events(事件)(官网文档翻译10) 煎茶Touch 2的组件和类的触发广泛的事件,在其生命周期的不同点.活动让你的代码,它周围的变化作出反应,并在煎茶触摸是一个关键的概念. ...

最新文章

  1. 追番必备,动漫角色也可以用人脸识别了
  2. 如何避免jquery库和其它库的冲突
  3. VIM 多行注释与取消
  4. 9.1 mnist_softmax 交叉熵多分类器
  5. LeetCode之Next Greater Element I
  6. java 基础包的功能_Java 8的功能基础
  7. spark rdd读取文件
  8. k3 审核流程图_3 金蝶K3操作流程图详解
  9. 技术分享PPT整理(一):Bootstrap基础与应用
  10. 机器人动力学与参数辨识学习笔记(一)
  11. HDU题目分类大全【大集合】
  12. J-LINK 烧录程序
  13. 中国移动支付线下交易扩大,支付服务角逐趋热
  14. 对于线性代数、特征空间、特征提取、深度学习的一些深夜思考
  15. 美国宾州计算机学校,美国留学,看看宾州有哪些顶尖学校?
  16. 信号完整性的定义、干扰因素及解决方法详解
  17. 台湾大学林轩田教授机器学习基石课程理解及python实现----PLA
  18. 阅读笔记之:Multimodal learning in Loosely-organized web images-CVPR2014
  19. ENVI遥感影像解译制作土地利用专题图
  20. 7-33 地下迷宫探索 (30 分)

热门文章

  1. Windows Phone开发(44):推送通知第二集——磁贴通知
  2. 用Entlib的配置程序块遇到的问题
  3. 20140711_类的继承、派生、ACE框架、指针的问题、系统的问题
  4. lua4.0中实现% 取余操作
  5. AndroidStudio_开发工具的设置_界面设置_字体设置_使用习惯设置_按钮设置等一些设置的介绍---Android原生开发工作笔记71
  6. Sharding-JDBC数据库_垂直切分_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记012
  7. ES6新特性_ES6生成器函数实例_第二个实例---JavaScript_ECMAScript_ES6-ES11新特性工作笔记023
  8. JAVA高并发工作笔记0002---高并发编程之使用ThreadFactory来创建新的线程
  9. PAT 1003 Emergency 递归记录访问路径
  10. 杭电1713相遇周期