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

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

[复制链接]
wbeast 发布时间:2019-7-30 11:32
      jSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
  L( n5 ]5 |( M" Q    rtthread物联网操作系统集成JSON软件包,可以通过ENV工具获取软件包。只需要几个指令,就可以完成JSON移植,非常方便。/ ]' s1 T$ v# `5 c: E% I
1、 打开辅助开发工具env,输入配置指令:"menuconfig",选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。4 z6 a0 K' d# X/ o* K' n8 X

% X. e3 q  ]" b) a- o: T( p& u 164630ov4eh4viizh3mhhc.png " b6 {9 [" t" Z4 \9 l% H: q
2、程序示例! m4 U: M. t3 u( W% u; j% [& m7 O2 E
  1. void json_examples(){
    ) n7 |5 W1 G2 D5 l( C+ ]
  2.         
    : n% w- r7 f9 o9 q- A' y

  3. $ }8 V, e# c8 w% r$ B- m: {
  4.           cJSON * usr,*usr1,* Array,*usr2;
    3 Z9 o5 B9 h1 G2 ^
  5.            char *out;+ S! w! D# x. N1 z, E4 H2 w
  6.         
    ! S$ ~; |+ Z2 k# k
  7.   
    : s. i+ w# `6 n6 D( q
  8.     usr=cJSON_CreateObject();   //创建JSON对象. Z' Z. v' \$ D4 U
  9.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    7 e( |) x0 c# G9 u1 s: C
  10.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字2 p& x3 b' Z9 t& J! q3 m
  11.           out= cJSON_Print(usr);9 k1 y0 }: h. I6 R0 v! b1 \8 T" W- p
  12.           rt_kprintf("\r\n%s\r\n",out);) R3 m. p3 U* \! y7 E' D5 v
  13.            free(out);//释放内存
    ( C9 n# C8 {2 ^. A) n! M
  14.                  cJSON_Delete(usr);//删除JSON对象0 u0 [0 ^; A7 V: V! o
  15. / O- U. H5 `& H8 T4 v' ?( o
  16.     usr=cJSON_CreateObject();   //创建JSON对象( o1 {* K. v' Y/ W, W
  17.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数
    ) t8 D4 E: [& v2 T9 U4 G  o
  18.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数) h& @' P: }# i0 K
  19.           out= cJSON_Print(usr);
    5 ~! g3 g! H. N3 A6 F
  20.           rt_kprintf("\r\n%s\r\n",out);
    6 m3 i' @' J2 O. s# ~; @' @, t
  21.           free(out);
    3 w, j7 H! ^. @5 {8 _9 L5 k
  22.                  cJSON_Delete(usr);0 K, h( x0 L4 m( G+ _  K& O: u
  23.         
    0 G: j7 [! W" I% e) u4 k
  24.         ( i" H3 n) y* X9 Q
  25.     usr=cJSON_CreateObject();   //创建JSON对象
    ( `3 g2 ^( A3 }4 s
  26.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数" x6 W* h, H/ `3 |2 l) t5 o, ]7 X8 A
  27.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数
    1 r2 l7 a" r% F2 {% @" Y& d3 \4 C
  28.           out= cJSON_Print(usr);//json对象转换成字符串
    6 z5 S/ f% q, q
  29.           rt_kprintf("\r\n%s\r\n",out);' ^  ]0 {/ I2 ]- ^+ v
  30.           free(out);//释放内存
    * q: r& [6 x3 ], w2 ~; V
  31.                 cJSON_Delete(usr);//删除JSON对象
    + t2 E% V  `/ {* C/ V
  32.                 3 f! m& n7 {1 a/ C% g0 S
  33.                  //创建json数组对象9 A) Y' D. f( L& U. g0 [$ y' W
  34.                          Array = cJSON_CreateArray();, M. t! Q) X% D# Y" v+ _6 {
  35.                          usr1 = cJSON_CreateObject();
    : W: e( M: H0 ^* a: {+ A
  36.                   cJSON_AddItemToArray(Array,usr1);
    7 o7 C3 b: F+ I  s
  37.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字( x4 i# ?# W; k$ E5 }
  38.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    2 a; [- Q9 f# }& O) g5 G& K3 {
  39.                   out= cJSON_Print(usr);//json对象转换成字符串
    " Z* K/ K, b1 e
  40.             cJSON_Delete(usr);) |7 @' Y6 {- c) q' O
  41.             rt_kprintf("\r\n%s\r\n",out);
    0 Q/ M6 o$ ]8 `
  42.                          free(out);# |$ ^6 u! q. Y% X, u
  43.         8 z  O$ _' s6 f( q* ^; e

  44. * B5 T+ Z- R' k, ^9 C* n
  45.         / E0 V6 w; u! [( L  j6 a
  46.         8 C# d& y5 S, _% |1 Q" Q3 O2 Y6 a
  47.            //json对象嵌套使用  G7 W( u/ ^  O" |5 }! e
  48.                    usr=cJSON_CreateObject();   //创建JSON对象
    , Y4 u5 Z2 H! I8 p& U& A# T( e
  49.                          Array = cJSON_CreateArray();
    ) p5 \$ E: c- T$ ^0 u$ R
  50.                   cJSON_AddItemToObject(usr, "rows",Array );
    : p# D; ]' c  j, |( t2 b
  51.                          usr1 = cJSON_CreateObject();
    5 i8 A! P2 O, c' h$ v6 e
  52.                          usr2 = cJSON_CreateObject();1 A! o) {: ?3 Z6 p" M! X: Y
  53.                   cJSON_AddItemToArray(Array,usr1);
    3 y* }& i, e4 {! U
  54.                          cJSON_AddItemToArray(Array,usr2);
      X) _, p$ M. O3 w7 q( {; F
  55.                                 
    4 T3 i% ]* o! J5 J% A7 H5 j
  56.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
    / R  @9 i  h8 N% l3 b
  57.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());
    : s* {. s% t3 }
  58.          , |% `, c, m1 _; e  f; s9 @* n
  59.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
    $ t2 s4 \; b# @- \# R- @- N+ J
  60.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
    / [. l3 F0 Y) {: x& O
  61.          . P5 L0 ~- h- Z* E% R; I
  62.                   out= cJSON_Print(usr);//json对象转换成字符串
    ' f3 C! D8 h; O9 Z7 e. r
  63.             cJSON_Delete(usr);//删除JSON对象' B. ?" o, d3 n5 O2 y
  64.             rt_kprintf("\r\n%s\r\n",out);
    8 S) s, g# k' v6 R# O) P. e' E& j
  65.                          free(out);//释放内存
    1 w$ W/ x; h# r2 G% u. ~; A
  66.         
    ! m& S8 G* g* h9 Q/ y7 H
  67. }
复制代码
3、实验现象,如下图所示。$ l0 p( V7 k$ O! R4 p3 q  H
TIM截图20190726160304.png 源码参考:https://www.stmcu.org.cn/module/forum/thread-621278-1-1.html里面的资料/ z# x& F, ?$ s$ G6 x* q# V2 ^
收藏 评论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 手机版