你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 FOTA 例程之 cJSON 使用

[复制链接]
STMCU小助手 发布时间:2022-8-7 15:16
前言 在 STM32 OTA 例程中,设备端(stm32F769 探索版)与云端交换数据使用的是 json 格式。在本篇文章中,将对 json 格式以及 Cjson 的使用及注意事项进行说明。% n9 y) ^* @( p  g

* A) f. E4 R  v0 d. f! E9 ?$ o* L
JSON 格式
- i, J8 ]8 L7 O  S& fJSON(JavaScript Object Notation)是一个轻量级的数据交换格式。既便于开发者读写,也便于机器分析和构建。它独立于开发语言,是一种文本格式,很适用描述在各个系统间交换的数据。
" w, {7 _! X8 IJSON 格式的数据看起来就像下面这个样子:* z" X& c2 H5 H
{
  C% k: s& O$ T$ ] “Room1”: {3 p4 @6 ?" U/ F
“LED”: “on”,
! [/ Y5 ^/ A* R) T “Temperature”: “36”8 A5 v! o/ Z6 j' i! F" t% x
} }) ^% E/ W: z$ P+ B9 Z0 p7 k7 l
这个 JSON 数据描述的是 Room1 的 LED 灯状态以及温度值。它由一组“名称(key)”以及对应的“ 值(value)”组成。
3 C$ }, m* x$ v8 H: j4 Y/ d. M“名称”和“ 值”之间由“ :”分开。各组“名称:值”对之间由“,”符号进行分割。
. `* T6 T) G* K. Q* {
: q( p8 w5 S# U
cJSON 的使用
( F3 i" r$ t% d( ~: w' f( I6 n( O针对不同的开发语言,网上有很多 JSON 的实现, demo 里使用的是 Cjson,版本 1.6。+ j2 v1 ]1 ~* L, y/ A. l

- [8 V' P6 C3 W. ~3 U
将 Cjson 添加到工程
$ y7 s, o. N4 d- z( c8 |8 a9 PCjson 只有一个 C 文件 Cjson.C 和一个头文件 Cjson.h。所以只需要将这两个文件拷贝到工程文件夹中,并将 Cjson.C 添加到工程中就可以了。
4 c+ S  p# p2 ~0 W3 i
: z' b  n+ c% I) D; B
数据结构 8 N2 l' P5 X2 S  ?# m6 t& H
Cjson 中使用下面的数据结构来表示 JSON 数据。
8 h' n' g6 l/ q$ k$ L3 W7 \* ^6 U' V, A' y
! Y- r2 [, `' n+ F% X3 ^% v1 a
8845X]8P(]D68133D{FSS@M.png ( i5 N- L; j1 {8 p

# G% Z. H9 E$ T6 m/ T8 @0 M
*next 和*prev 指针可以用来遍历“矩阵”或者“对象”类型的 JSON 数据链表;这两种类型的 JSON 数据还会有一个子数据指针*childtype : 表示该 json 数据的类型,比如数字,字符串、矩阵、对象等
8 d5 t5 N$ H% y7 y9 a+ S* b*valuestring, valueint, valuedouble 和*string 指针分别指向该 json 数据类型具体的值,视其类型而定。6 ^1 Q) a8 U, B( {2 d1 }$ C
. F( W# @. J! _, r! P2 G$ i2 y0 a* n6 M
" ~) E0 Y1 m, E& K$ g  c

9 k' _9 k7 d/ q7 I
3 X: g6 [' ~" B. \
完整版请查看:附件
& g9 b% D# p9 _  a& b( n1 O, u/ I4 _/ @3 t
. q$ D. m2 d' u" c; r2 t. |$ E
+ D2 W6 m" ~- M5 o
8845X]8P(]D68133D{FSS@M.png
赞 收藏 评论0 发布时间:2022-8-7 15:16

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版