助力低代码开发 翼辉开源C语言代码生成工具JStruct

yumo6663周前 (06-30)技术文章9

近日,为了帮助程序员节省代码开发量,翼辉信息董事长、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 系统为内核进行开发,可为开发者提供低代码开发平台,快速抓住物联网时代创业契机。此次翼辉通过发布和开源代码生成器,可为程序员极大节约代码开发量,让开发工作更加便捷。翼辉爱智团队也一贯坚持以程序员和开发者的利益至上,未来将有更多优秀的小工具分批开放提供使用。

相关文章

单片机c语言基础知识,c语言必背100代码有哪些?

我记得刚开始接触编程的时候,觉得太难了。也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧?他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程序都会有影响。一个程序几...

C语言项目实战:《飞翔的小鸟》零基础项目!190行源代码示例

这篇文章主要为大家详细介绍了C语言实现——《飞翔的小鸟项目》文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下!游戏介绍:《Flappy Bird》其实是曾经流行的一款手机游...

C语言实现《贪吃蛇》小游戏!代码分享+思路注释

贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本。既简单又耐玩。该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长。 [1]贪吃蛇游戏最初为单机模式,后续又陆续推出团战模式、赏...

这两个简单的C语言宏定义,能够在程序运行前,找到错误代码

今天翻看 Linux 内核源代码时,发现两行非常有意思的C语言代码,如下:#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) #...

C语言开发:如何用130行代码,写出"超火"微信小游戏—羊了个羊?

近日,一款名为“羊了个羊”微信小游戏火爆全网。凭借简单玩法和不走寻常路的关卡设置,三消小游戏《羊了个羊》,成为《合成大西瓜》《召唤神龙》后的小微游戏新王者。“其实游戏很简单,就是凑齐三个一样的图案就能...

有趣的6个经典C语言代码案例欣赏

1."Hello, World!" 代码这是 C 语言中最基础的一个程序,打印出 "Hello, World!"。#include <stdio.h> i...