STM32 基础系列教程 49 – Jansson
前言
??? JSON(JavaScript?Object Notation, JS 對象簡譜) 是一種輕量級的數(shù)據(jù)交換格式。它基于?ECMAScript?(歐洲計算機協(xié)會制定的js規(guī)范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。它獨立于開發(fā)語言,是一種文本格式, 很適用描述在各個系統(tǒng)間交換的數(shù)據(jù)。
JSON 格式的數(shù)據(jù)看起來就像下面這個樣子:
{
“Room1”: {
“LED”: “on”,
“Temperature”: “36”
}
}
這個 JSON 數(shù)據(jù)描述的是 Room1 的 LED 燈狀態(tài)以及溫度值。它由一組“名稱(key) ”以及對應(yīng)的“ 值(value) ”組成。“名稱”和“ 值”之間由“ : ”分開。各組“名稱: 值”對之間由“, ”符號進行分割。
?
Jansson是一個用于編碼、解碼和操作JSON數(shù)據(jù)的C庫。其主要特點和設(shè)計原則是:
簡單直觀的API和數(shù)據(jù)模型
全面的文檔
不依賴于其他庫
完全Unicode支持(UTF-8)
廣泛的測試套件
?
Jansson獲得麻省理工學(xué)院許可;有關(guān)詳細(xì)信息,請參閱源代碼發(fā)行版中的LICENSE。Jansson在生產(chǎn)中使用,它的API是穩(wěn)定的。它可以在許多平臺上工作,包括許多Unix之類的系統(tǒng)和Windows。它適用于任何系統(tǒng),包括桌面、服務(wù)器和小型嵌入式系統(tǒng)。本節(jié)將給大家演示STM32MCU + jansson庫實現(xiàn)對JSON數(shù)據(jù)的組包與解包過程,下面開始進入正題。
?
示例詳解
基于硬件平臺: 正點源子的stm32f4 探索者開發(fā)板,MCU 的型號是?STM32F4ZET6, 使用stm32cubemx 工具自動產(chǎn)生的配置工程,使用KEIL5編譯代碼。本示例所用的開發(fā)板及部分原理圖:
?
?
?
?
?
?
庫安裝》
庫導(dǎo)入》
庫導(dǎo)入后》
?
??
?
c) 編譯工程,調(diào)試程序, (注:在使用探索者F4調(diào)試時,下載或仿真調(diào)試時先不要PC串口工具連接上開發(fā)板的USB_232接口,有可能導(dǎo)致程序運行不了--boot0引腳電平不對,可以先跑起來再在PC串口工具上連接相應(yīng)端口!!,可按下面的具體操作步驟來操作—>>? )
?
串口已打開,程序全速運行(F5或單擊全速運行圖標(biāo))相看運行結(jié)果:
?
這個時候可以在串口中看到如下程序運行結(jié)果(成功打印出JSON數(shù)據(jù)并成功解析):
復(fù)制上面輸出的結(jié)果,打開電腦網(wǎng)頁瀏覽器,打開http://www.bejson.com/ (在線JSON格式化)網(wǎng)站,格式化一下輸出結(jié)果!!
到此本次的基于jansson庫的JSON數(shù)據(jù)操作(創(chuàng)建與解析)就完成了,jansson庫之持的所有接口都在 jansson.h文件中有聲明,關(guān)于jansson庫的更多接口具體說明請查看jansson官方接口說明可以KEIL MDK 安裝目錄下(如筆者的…/ARM/PACK/jansson\1.0.0\doc)的說明文檔對應(yīng)的API Reference部分:
當(dāng)然你也可以直接百度jansson,進入Jansson官方網(wǎng)站https://jansson.readthedocs.io/en/2.12/apiref.html:查看API Reference說明:
下載使用最新的jansson庫請點它--> http://www.digip.org/jansson/releases/ ,快快讓你的程序也Json起來吧。
?
OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內(nèi)容,也歡迎大家留言!!最后喜歡這個公眾號的同學(xué)們記得加關(guān)注了,會有不定期技術(shù)干貨推出!!
?
文中源碼資料下載,在公眾號里給十三發(fā)消息:
下載|STM32基礎(chǔ)系列教程49
?
關(guān)注十三公眾號
?
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的STM32 基础系列教程 49 – Jansson的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 基础系列教程 48 – CJ
- 下一篇: STM32 基础系列教程 50 – Mb