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

[分享]WB-EIOT开发板移植rtthread系统的JSON软件包

[复制链接]
wbeast 发布时间:2019-7-30 11:32
      jSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。7 N5 n8 _6 J/ k# X! d+ p
    rtthread物联网操作系统集成JSON软件包,可以通过ENV工具获取软件包。只需要几个指令,就可以完成JSON移植,非常方便。! F5 |/ J2 q. b' S3 x6 T
1、 打开辅助开发工具env,输入配置指令:"menuconfig",选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。
- g6 z/ d+ Z8 `- w. R9 C! t* _) N) V6 x5 u! ?
164630ov4eh4viizh3mhhc.png
) R0 @5 C. i9 H3 Q2、程序示例0 s- y% A8 S) T* S1 w& ?. o
  1. void json_examples(){
    / P1 u: n; ]: w6 @$ }& _
  2.         
    ! d- `) ]9 I) k2 ?1 V# D

  3. 0 G1 ~6 T  }3 d  ], G
  4.           cJSON * usr,*usr1,* Array,*usr2;) C; k9 r1 z+ X2 K$ I4 z# M( h$ C
  5.            char *out;
    + R; Y: ^5 u; b0 l' W$ s
  6.         0 b+ F6 a4 D% _' M+ }
  7.   6 G+ F% n! ]( U
  8.     usr=cJSON_CreateObject();   //创建JSON对象
    & A+ z# x7 a& U+ t' J
  9.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    5 P' J, v9 F* e  u
  10.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    4 \  M6 J3 ~* @- n; \' V+ l& z
  11.           out= cJSON_Print(usr);
    * j) T/ y$ |' {0 O/ L, |
  12.           rt_kprintf("\r\n%s\r\n",out);% h0 a. m8 |; O
  13.            free(out);//释放内存
    9 ]3 |! L* t0 ]! @4 q; ~, _
  14.                  cJSON_Delete(usr);//删除JSON对象, {5 h2 }; E0 k6 A: j$ B# S5 g
  15. " Q( E6 M- C$ ?
  16.     usr=cJSON_CreateObject();   //创建JSON对象' _0 s( a: Z4 r
  17.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数$ u, ?- i/ c/ A( m$ C
  18.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数) R$ m8 Q- r6 ^2 k! K+ k- t
  19.           out= cJSON_Print(usr);3 R8 l) C: ~( ~. L
  20.           rt_kprintf("\r\n%s\r\n",out);+ e6 ]( s6 z$ S* X- k! M1 p
  21.           free(out);
    * n" }6 n/ Q' v( L" C6 K+ P
  22.                  cJSON_Delete(usr);1 ]3 C" S+ s+ `/ \
  23.         
    4 N( ^7 H* S+ W/ X3 f0 U* ]
  24.         / B5 J. \' r! d& {% e4 j+ |! t
  25.     usr=cJSON_CreateObject();   //创建JSON对象% h( {- T' e+ ?$ r- @' O
  26.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数
    : |* H% m- U! o" z( h6 B$ a
  27.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数
    / t3 c% b  F- ~& A& x* m
  28.           out= cJSON_Print(usr);//json对象转换成字符串
    ( |* S4 ~, ?. @
  29.           rt_kprintf("\r\n%s\r\n",out);
    5 T  j$ T  B/ p0 m: U! t
  30.           free(out);//释放内存/ p$ }+ s8 S+ r
  31.                 cJSON_Delete(usr);//删除JSON对象
    ' n/ j& O; q! {: q, j6 O2 t- G+ e
  32.                 ' q1 c3 d" \  {% W- _0 o
  33.                  //创建json数组对象7 P% |/ q+ j, A3 }! `0 \- d
  34.                          Array = cJSON_CreateArray();5 i/ n' s* m1 q$ j6 J7 s* B' P! J
  35.                          usr1 = cJSON_CreateObject();4 ~3 |8 b; w9 S$ w7 z7 ^
  36.                   cJSON_AddItemToArray(Array,usr1);
    6 b& G* r) x& p; t* f* M
  37.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    0 H2 R" u: R2 ?* j
  38.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字' }8 a# b) i* N- F) C: t! b3 K
  39.                   out= cJSON_Print(usr);//json对象转换成字符串  W/ F0 B/ y/ Z& a4 y1 y
  40.             cJSON_Delete(usr);6 G) O* I1 h( g6 F
  41.             rt_kprintf("\r\n%s\r\n",out);
    ( z$ D: M  C6 \: P8 p8 m% i! b
  42.                          free(out);( O, w2 n0 t- ]: K# p9 [- U7 p8 j3 j
  43.         ( q' A6 r( i1 K: k7 x7 S

  44. # ~5 \$ y9 c+ ^9 o, |
  45.         
    : M! U% z- P7 R  @: J" H9 u% _$ j
  46.         
    6 [/ x( j0 R) L- M" E7 Q
  47.            //json对象嵌套使用2 L9 v0 W; `6 M: ^
  48.                    usr=cJSON_CreateObject();   //创建JSON对象/ s% H$ ^$ y( y* A/ m! R
  49.                          Array = cJSON_CreateArray();
    2 L1 w2 H# n$ r& |
  50.                   cJSON_AddItemToObject(usr, "rows",Array );! ]6 |2 ]5 d; x+ t( C5 z
  51.                          usr1 = cJSON_CreateObject();
    - W" B& w% ]5 @
  52.                          usr2 = cJSON_CreateObject();1 n" L- Z/ }/ ~# ]0 B, n5 q
  53.                   cJSON_AddItemToArray(Array,usr1);& F! ?' U0 L* S; A/ M* H
  54.                          cJSON_AddItemToArray(Array,usr2);
    3 H' Z. X8 s" y- j
  55.                                 , ~" m+ k" n/ v. X" G) r0 h
  56.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
    ' [5 ?( t( ^. N3 ]" R- ?
  57.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());' u7 y" f# r% ^5 |
  58.          
    ; B$ t, t, @7 @. t; ^
  59.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字! Z9 N7 Y% m4 t/ x
  60.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    / _0 n) O# G5 r3 l. z
  61.          0 ]1 R  w' b& n
  62.                   out= cJSON_Print(usr);//json对象转换成字符串
    , e$ O1 F0 n3 o/ S2 s( G4 L
  63.             cJSON_Delete(usr);//删除JSON对象2 \, u$ d( A5 R7 l2 A2 e6 A
  64.             rt_kprintf("\r\n%s\r\n",out);' P3 Z7 g: Y" F3 {$ Y/ j: @
  65.                          free(out);//释放内存; r/ F) d' M2 H& Q
  66.         
    ( [9 q9 h# n) S; D
  67. }
复制代码
3、实验现象,如下图所示。+ |4 ~& n. Y( j! M1 D5 w
TIM截图20190726160304.png 源码参考:https://www.stmcu.org.cn/module/forum/thread-621278-1-1.html里面的资料0 f3 T7 r* z7 h9 a% j
收藏 评论4 发布时间:2019-7-30 11:32

举报

4个回答
andey 回答时间:2019-7-30 14:03:50
提示: 作者被禁止或删除 内容自动屏蔽
wangallenwang 回答时间:2019-8-8 15:44:25
wangallenwang 回答时间:2019-8-14 10:21:09
wangallenwang 回答时间:2019-8-23 10:53:33

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版