拿来即用:用C+JS结构来处理JSON数据

【面对的问题】函数

        在物联网产品的开发过程当中,对JSON格式的数据处理是一个强需求,例如亚马逊的 AWS IOT平台,设备与后台之间的通信数据都是JSON格式,先瞄一眼大概的样子:工具

     这是一个真实产品的通信数据,设备端的代码C代码中利用cJSON这个开源工具来完成JSON字符的解析和组装工做。代码我这里就不贴了,解析函数很长,要滚动好屡次鼠标滑轮。并且一不注意释放资源就会发生内存泄漏!测试

    那么,是否有更好的方式来解决这个问题呢?google

    答案就是这篇文章介绍的duktape引擎!spa

【Duktape简介】3d

    这里只是简单介绍下duktape,详细的介绍你们本身去google。blog

    Duktape 是一个嵌入式 Javascript引擎,专一于可移植性和空间占用。ip

    易于集成到C/C++项目中,使用API实现C代码与JS代码的双向调用。内存

 

【代码说明】资源

1.文件说明

 

 

    duktape.c:引擎主要C文件。

    duktape.h:引擎头文件。

    main.c      :  main函数所在文件。

   main.js      :Javascript文件,处理业务逻辑的代码就放在这里。

    Makefile   :  编译脚本。

    miniz.c     :有时候为了js代码的保密,不能把js源码放到最终产品中,须要压缩和混淆;加载的时候再进行解压。

2.核心步骤 

 

    当C代码中须要对JSON格式的字符串进行处理时,把JSON数据经过栈结构传给JS程序,在JS程序中处理数据以后,把处理结果再返回给C程序中。

    在JS程序中,若是有些操做没法处理(例如:发送数据给串口),那么就调用C程序中的函数来处理。

3.代码说明

 

 

【测试环境】

1. x86系统

    我是在  Ubuntu16.04 下测试的,使用系统自带 gcc 编译器。

2.嵌入式系统

    只须要把编译器换成对应的交叉编译器便可。

 

【END】

1.这是原创文章,请尊重版权。如需转载,请保留所有内容并注明来源。若是方便的话,请联系我确认。

2.文章中若有错误,或者但愿交流、探讨相关内容,很是欢迎联系我。

3.邮箱:sewain@126.com

4.公众号:IOT物联网小镇

相关文章
相关标签/搜索