近日,为了帮助程序员节省代码开发量,翼辉信息董事长、SylixOS 嵌入式操作系统、EdgerOS 新一代智能边缘计算操作系统创始人韩辉发布并开源了极其有用的代码生成器-JStruct。该工具使用 JavaScript 编写,可以运行在 JSRE 或者 Node.js 环境中,其生成的代码相当于在 C/C++ 环境中直接使用 JSON.parse 与 JSON.stringify。JStruct 降低了 C 语言嵌入式编程的门槛,而它的开源是翼辉在简化设备端开发道路上迈出的第一步。
JSON 作为现在最主流的数据交换语言之一,其简洁、清晰的层次结构相较于其他数据描述语言更加易读、易编写。随着互联网技术的迅猛发展,JSON 在各行业应用中脱颖而出。由于语言优势, JavaScript 可以非常轻松地将 JSON 数据转换为应用对象,反之也可以很容易的将应用对象转换为 JSON 数据。但这种顺畅的体验也只能在 JavaScript 中体会到,尤其像 C 语言这样的强类型语言,想要使用 JSON 来完成数据传输,相较于 JavaScript 而言则要复杂的多。
在 C 语言编程中通常会引入 cJSON 来完成对 JSON 数据的生成、操作、解析等操作。虽然 cJSON 的 API 简单易用,但相对于 JavaScript 简洁的声明式语法,其可读性还存在明显差距。试想在具体的业务场景中可能会设计很多的 JSON 结构,而构建这些 JSON 数据结构的 C 语言代码大同小异。一旦数据结构多到了一个量级,那么这样的编程就成了重复的体力劳动且极容易出错。那么有没有更好的方案来让我们能使用声明式的方式,直接生成 C 语言代码,把自己从这样枯燥无趣的体力劳动中解放出来? 答案就是 “JStruct”。
JStruct 是一个可以运行在 Node.js 和 JSRE 平台上的 C 语言 JSON 结构代码生成工具,只需要通过一个简单的配置文件,便可以生成一套完整的定制化 JSON 数据结构处理的 C 代码。
通过引入 JStruct 所生成的 test_jstruct.h,C 代码中可以直接使用结构体编程,像 JavaScript 一样进行对象成员的赋值与转换。因为 JSON 字段与结构体成员一一对应,代码结构将更加清晰、友好。这样的开发模式与数据调用方式也更容易让上层应用开发人员理解和使用,降低了开发所需的代码量。如果开发过程中 JSON 结构需要改动,也仅仅只需要修改配置文件重新生成替换即可。
由于使用了 JSON 声明的配置形式,使得无论是应用端还是设备端开发者都可以根据 conf.json 的内容清晰了解到数据结构和类型,这样极大地降低了设备端与应用端的交流成本。
万物互联的目的实质就是打通数据连接,如何更加方便快速地完成数据的构建,解析,处理则是达成万物互联目标的基础。 如果已经厌倦了 cJSON 的数据生成与解析的方式,不妨试试 JStruct ,相信一定会给你带来不同的 JSON 数据操作体验。
热爱写代码、程序员出身的韩辉在 2006 年开始研发 SylixOS 系统,与团队一起写下百万行内核源代码,成为了现在翼辉信息的种子,SylixOS 相关内核代码开源并在工信部进行了源码自主率扫描,内核自主化率达到 100%。2021 年,韩辉带领翼辉爱智团队推出新一代智能边缘计算操作系统——爱智操作系统EdgerOS,基于 SylixOS 系统为内核进行开发,可为开发者提供低代码开发平台,快速抓住物联网时代创业契机。此次翼辉通过发布和开源代码生成器,可为程序员极大节约代码开发量,让开发工作更加便捷。翼辉爱智团队也一贯坚持以程序员和开发者的利益至上,未来将有更多优秀的小工具分批开放提供使用。