近日,為了幫助程序員節省代碼開發量,翼輝信息董事長、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 系統為內核進行開發,可為開發者提供低代碼開發平臺,快速抓住物聯網時代創業契機。此次翼輝通過發布和開源代碼生成器,可為程序員極大節約代碼開發量,讓開發工作更加便捷。翼輝愛智團隊也一貫堅持以程序員和開發者的利益至上,未來將有更多優秀的小工具分批開放提供使用。